Audio

From Things and Stuff Wiki
Jump to: navigation, search

Things and Stuff Wiki - an organically evolving knowledge base wiki with a totally on-the-fly taxonomy containing topic outlines, descriptions and breadcrumbs, with links to sites, systems, software, manuals, organisations, people, articles, guides, slides, papers, books, comments, screencasts, webcasts, scratchpads and more. use the Table of Contents for navigation on longer pages. see About for further information. / et / em

to finish rearranging.

Mostly Linux, mostly free software.

quicklink: Pure Data, Audio setup

Contents

General

Acoustics

mess


  • https://en.wikipedia.org/wiki/Sound - a vibration that propagates as a typically audible mechanical wave of pressure and displacement, through a medium such as air or water. In physiology and psychology, sound is the reception of such waves and their perception by the brain.


  • https://en.wikipedia.org/wiki/Acoustics - the interdisciplinary science that deals with the study of all mechanical waves in gases, liquids, and solids including topics such as vibration, sound, ultrasound and infrasound. A scientist who works in the field of acoustics is an acoustician while someone working in the field of acoustics technology may be called an acoustical engineer. The application of acoustics is present in almost all aspects of modern society with the most obvious being the audio and noise control industries.



  • https://en.wikipedia.org/wiki/Speed_of_sound - the distance travelled per unit time by a sound wave as it propagates through an elastic medium. In dry air at 20 °C (68 °F), the speed of sound is 343.2 metres per second (1,126 ft/s; 1,236 km/h; 768 mph; 667 kn), or a kilometre in 2.914 s or a mile in 4.689 s.
  • https://en.wikipedia.org/wiki/Sound_pressure - or acoustic pressure is the local pressure deviation from the ambient (average, or equilibrium) atmospheric pressure, caused by a sound wave. In air, sound pressure can be measured using a microphone, and in water with a hydrophone. The SI unit of sound pressure is the pascal (Pa).
  • https://en.wikipedia.org/wiki/Phon - a unit of loudness level for pure tones. Its purpose is to compensate for the effect of frequency on the perceived loudness of tones. By definition, the number of phon of a sound is the dB SPL of a sound at a frequency of 1 kHz that sounds just as loud. This implies that 0 phon is the limit of perception, and inaudible sounds have negative phon levels. The equal-loudness contours are a way of mapping the dB SPL of a pure tone to the perceived loudness level (LN) in phons. These are now defined in the international standard ISO 226:2003, and the research on which this document is based concluded that earlier Fletcher–Munson curves and Robinson–Dadson curves were in error. The phon unit is not an SI unit in metrology. It is used as a unit of loudness level by the American National Standards Institute.


  • https://en.wikipedia.org/wiki/Sound_power - or acoustic power is the rate at which sound energy is emitted, reflected, transmitted or received, per unit time. The SI unit of sound power is the watt (W). It is the power of the sound force on a surface of the medium of propagation of the sound wave. For a sound source, unlike sound pressure, sound power is neither room-dependent nor distance-dependent. Sound pressure is a measurement at a point in space near the source, while the sound power of a source is the total power emitted by that source in all directions. Sound power passing through an area is sometimes called sound flux or acoustic flux through that area.
  • https://en.wikipedia.org/wiki/Sound_energy - a form of energy associated with the vibration of matter. The SI unit of sound energy is the joule (J). Sound is a mechanical wave and as such consists physically in oscillatory elastic compression and in oscillatory displacement of a fluid. Therefore, the medium acts as storage for both potential and kinetic energy as well.
  • https://en.wikipedia.org/wiki/Sound_intensity - also known as acoustic intensity is defined as the sound power per unit area. The SI unit of sound intensity is the watt per square meter (W/m2). The usual context is the noise measurement of sound intensity in the air at a listener's location as a sound energy quantity. Sound intensity is not the same physical quantity as sound pressure. Hearing is directly sensitive to sound pressure which is related to sound intensity. In consumer audio electronics, the level differences are called "intensity" differences, but sound intensity is a specifically defined quantity and cannot be sensed by a simple microphone. Sound energy passing per second through a unit area held perpendicular to the direction of propagation of sound waves is called intensity of sound.


  • https://en.wikipedia.org/wiki/Decibel - a logarithmic unit used to express the ratio of two values of a physical quantity, often power or intensity. One of these values is often a standard reference value, in which case the decibel is used to express the level of the other value relative to this reference. The number of decibels is ten times the logarithm to base 10 of the ratio of two power quantities, or of the ratio of the squares of two field amplitude quantities.

The decibel is commonly used in acoustics as a unit of sound pressure level. The reference pressure in air is set at the typical threshold of perception of an average human and there are common comparisons used to illustrate different levels of sound pressure.



  • https://en.wikipedia.org/wiki/Onset_(audio) - the beginning of a musical note or other sound, in which the amplitude rises from zero to an initial peak. It is related to (but different from) the concept of a transient: all musical notes have an onset, but do not necessarily include an initial transient.
  • https://en.wikipedia.org/wiki/Transient_(acoustics) - a high amplitude, short-duration sound at the beginning of a waveform that occurs in phenomena such as musical sounds, noises or speech. It can sometimes contain a high degree of non-periodic components and a higher magnitude of high frequencies than the harmonic content of that sound. Transients do not necessarily directly depend on the frequency of the tone they initiate. Transients are more difficult to encode with many audio compression algorithms, causing pre-echo.



  • https://en.wikipedia.org/wiki/Acoustic_attenuation - a measure of the energy loss of sound propagation in media. Most media have viscosity, and are therefore not ideal media. When sound propagates in such media, there is always thermal consumption of energy caused by viscosity. For inhomogeneous media, besides media viscosity, acoustic scattering is another main reason for removal of acoustic energy. Acoustic attenuation in a lossy medium plays an important role in many scientific researches and engineering fields, such as medical ultrasonography, vibration and noise reduction.
  • https://en.wikipedia.org/wiki/Absorption_(acoustics) - refers to the process by which a material, structure, or object takes in sound energy when sound waves are encountered, as opposed to reflecting the energy. Part of the absorbed energy is transformed into heat and part is transmitted through the absorbing body. The energy transformed into heat is said to have been 'lost'.

When sound from a loudspeaker collides with the walls of a room part of the sound's energy is reflected, part is transmitted, and part is absorbed into the walls. As the waves travel through the wall they deform the material thereof (just like they deformed the air before). This deformation causes mechanical losses via conversion of part of the sound energy into heat, resulting in acoustic attenuation, mostly due to the wall's viscosity. Similar attenuation mechanisms apply for the air and any other medium through which sound travels.

The fraction of sound absorbed is governed by the acoustic impedances of both media and is a function of frequency and the incident angle. Size and shape can influence the sound wave's behavior if they interact with its wavelength, giving rise to wave phenomena such as standing waves and diffraction. Acoustic absorption is of particular interest in soundproofing. Soundproofing aims to absorb as much sound energy (often in particular frequencies) as possible converting it into heat or transmitting it away from a certain location. In general, soft, pliable, or porous materials (like cloths) serve as good acoustic insulators - absorbing most sound, whereas dense, hard, impenetrable materials (such as metals) reflect most.



  • https://en.wikipedia.org/wiki/Sone - a unit of how loud a sound is perceived. The sone scale is linear. Doubling the perceived loudness doubles the sone value. Proposed by Stanley Smith Stevens in 1936, it is a non-SI unit. In acoustics, loudness is the subjective perception of sound pressure. The study of apparent loudness is included in the topic of psychoacoustics and employs methods of psychophysics.


  • https://en.wikipedia.org/wiki/Audio_frequency - AF or audible frequency, is characterized as a periodic vibration whose frequency is audible to the average human. The SI unit of audio frequency is the hertz (Hz). It is the property of sound that most determines pitch. The generally accepted standard range of audible frequencies is 20 to 20,000 Hz, although the range of frequencies individuals hear is greatly influenced by environmental factors. Frequencies below 20 Hz are generally felt rather than heard, assuming the amplitude of the vibration is great enough. Frequencies above 20,000 Hz can sometimes be sensed by young people. High frequencies are the first to be affected by hearing loss due to age and/or prolonged exposure to very loud noises.




  • https://en.wikipedia.org/wiki/Psychoacoustics - the scientific study of sound perception. More specifically, it is the branch of science studying the psychological and physiological responses associated with sound (including speech and music). It can be further categorized as a branch of psychophysics.




Performing Musician Magazine:

Training

Cymatics

Non-Newtonian

Electrical

  • https://en.wikipedia.org/wiki/Audio_signal - a representation of sound, typically as an electrical voltage. Audio signals have frequencies in the audio frequency range of roughly 20 to 20,000 Hz (the limits of human hearing). Audio signals may be synthesized directly, or may originate at a transducer such as a microphone, musical instrument pickup, phonograph cartridge, or tape head. Loudspeakers or headphones convert an electrical audio signal into sound. Digital representations of audio signals exist in a variety of formats. An audio channel or audio track is an audio signal communications channel in a storage device, used in operations such as multi-track recording and sound reinforcement.


Digital


Production

Synth programming, sequencer programming,








Frequency


Drums


Hardware

see sound on sound, etc.

Studio

Mixer

Microphones

Amplifier

For amp to be twice as loud as the 10 watt RMS amp you need a 100 watt RMS amp, and then for a amp to be twice as loud as the 100 watt RMS amp you need 1,000 watt RMS amp.

  • Class A - 100% of the input signal is used (conduction angle Θ = 360°). The active element remains conducting all of the time.
  • Class B - 50% of the input signal is used (Θ = 180°); the active element carries current half of each cycle, and is turned off for the other half.
  • Class AB - Class AB is intermediate between class A and B, the two active elements conduct more than half of the time.
  • Class C - Less than 50% of the input signal is used (conduction angle Θ < 180°).
  • Class D - uses some form of pulse-width modulation to control the output devices; the conduction angle of each device is no longer related directly to the input signal but instead varies in pulse width. These are sometimes called "digital" amplifiers because the output device is switched fully on or off, and not carrying current proportional to the signal amplitude.





Crossover

Speaker







Headphones

Soundcard


  • https://en.wikipedia.org/wiki/AC'97 - Audio Codec '97; also MC'97 for Modem Codec '97) is an audio codec standard developed by Intel Architecture Labs in 1997. The standard was used in motherboards, modems, and sound cards. Audio components integrated into chipsets consist of two component classes: an AC'97 digital controller (DC97), which is built into the southbridge of the chipset, and AC'97 audio and modem codecs, which are the analog components of the architecture. AC'97 defines a high-quality, 16- or 20-bit audio architecture with surround sound support for the PC. AC'97 supports a 96 kHz sampling rate at 20-bit stereo resolution and a 48 kHz sampling rate at 20-bit stereo resolution for multichannel recording and playback. AC97 defines a maximum of 6 channels of analog audio output.





DAW



Synth

See also #Synthesis, #Audio programming






  • Mozzi - sound synthesis library for Arduino. Mozzi brings your Arduino to life by allowing it to produce much more complex and interesting growls, sweeps and chorusing atmospherics. These sounds can be quickly and easily constructed from familiar synthesis units like oscillators, delays, filters and envelopes. You can use Mozzi to generate algorithmic music for an installation or performance, or make interactive sonifications of sensors, on a small, modular and super cheap Arduino, without the need for additional shields, message passing or external synths.




Drum machine


Sampler

Control voltage / gate


#type    name   chan, cc MSB/LSB, midi range, cv range,   latency
cvout    vol1    1    cc  7  -1       0 127     -1.0 1.0    10

cvout_name cvoutprupru



Firewire

MADI

  • http://en.wikipedia.org/wiki/MADI - or Multichannel Audio Digital Interface or AES10, is an Audio Engineering Society (AES) standard electronic communications protocol that defines the data format and electrical characteristics of an interface that carries multiple channels of digital audio. The AES first documented the MADI standard in AES10-1991, and updated it in AES10-2003 and AES10-2008. The MADI standard includes a bit-level description and has features in common with the two-channel format of AES3. It supports serial digital transmission over coaxial cable or fibre-optic lines of 28, 56, or 64 channels; and sampling rates of up to 96 kHz with resolution of up to 24 bits per channel. Like AES3 or ADAT it is a Uni-directional interface (one sender and one receiver).


USB

Pedal



Game controller

Raspberry PI

Wire


MP3


PA system


Sound system

Synthesis

to expand and resort

See also #Sampler

Learning

  • Synth Zone is an attempt to ease the search for synth resources on the Internet . If you can't find links to the information or resources here then please check out the full list of synth sites on Synth Zone's Synth Sites Links & Resources page.





  • Synth.tk - Sound Synthesis Education. Various article and video series. [6]
  • Advanced Programming Techniques for Modular Synthesizers - intended to provide the advanced user of the Clavia Nord Modular synthesizer with a toolbox of techniques for creating complex and interesting patches. Although the emphasis is on the Nord Modular, the techniques described in this document can be applied to any modular synthesizer, from a modular Moog to the Native Instruments Reaktor softsynth.


Elements



  • https://en.wikipedia.org/wiki/Low-frequency_oscillation - LFO - The primary oscillator circuits of a synthesizer are used to create the audio signals. A LFO is a secondary oscillator that operates at a significantly lower frequency (hence its name), typically below 20 Hz. This lower frequency or control signal is used to modulate another component's value, changing the sound without introducing another source.


Methods

Subtractive synthesis

FM synthesis


Additive synthesis

  • https://en.wikipedia.org/wiki/Additive_synthesis - a sound synthesis technique that creates timbre by adding sine waves together. The timbre of musical instruments can be considered in the light of Fourier theory to consist of multiple harmonic or inharmonic partials or overtones. Each partial is a sine wave of different frequency and amplitude that swells and decays over time. Additive synthesis most directly generates sound by adding the output of multiple sine wave generators. Alternative implementations may use pre-computed wavetables or the inverse Fast Fourier transform.

It’s difficult to go very far with additive synthesis using analog hardware. Each wave needs its own oscillator, and to get sounds that are very complex, it requires quite a few of them. This can get very bulky and expensive rather quickly. Most sounds found in nature would require hundreds or even thousands of sine waves to accurately reproduce them. Digital synthesizers make it easier to do additive synthesis. All the waves are just numbers in a computer, so you can add as many as you want if you have enough processing power.

Despite this potential complexity, simple additive synthesis is possible on quite modest analogue synths. So is 'sinusoids plus noise' synthesis. Indeed, I guarantee that anybody playing an instrument with two or more independently tuneable oscillators (and, maybe, a noise source) has created sounds employing tuned fifths, octaves, or whatever. As soon as you have done this, you've entering the weird and wonderful world of additive synthesis. So go and find a handful of extra oscillators, and get serious. Additives can be good for you, and it's great fun, I promise.

Wavetable / sample

  • https://en.wikipedia.org/wiki/Table-lookup_synthesis or wavetable-lookup synthesis is a class of sound synthesis methods using the waveform tables by table-lookup, called "table-lookup oscillator" technique. The length of waveforms or samples may be varied by each sound synthesis method, from a single-cycle up to several minutes.

Physical modelling synthesis

  • https://en.wikipedia.org/wiki/Digital_waveguide_synthesis -the synthesis of audio using a digital waveguide. Digital waveguides are efficient computational models for physical media through which acoustic waves propagate. For this reason, digital waveguides constitute a major part of most modern physical modeling synthesizers.





Modular hardware


DIY

Virtual Analogue

  • https://en.wikipedia.org/wiki/Analog_modeling_synthesizer - a synthesizer that generates the sounds of traditional analog synthesizers using DSP components and software algorithms. Analog modeling synthesizers simulate the behaviour of the original electric and electronic circuitry in order to digitally replicate their tone. This method of synthesis is also referred to as Virtual Analog or VA


Programming

  • https://en.wikipedia.org/wiki/Vector_synthesis - provides movement in a sound by providing dynamic cross-fading between (usually) four sound sources. The four sound sources are conceptually arranged as the extreme points of X and Y axes, and typically labelled A, B, C and D. A given mix of the four sound sources can be represented by a single point in this 'vector plane'. Movement of the point provides sonic interest and is the power of this technique. Mixing is frequently done using a joystick, although the point can be controlled using envelope generators or LFOs.


Bass

"take one square wave, one pulse wave, detune slightly. run to resonant 12db lowpass filter (you want 12db because the more gentle rolloff curve is much more suited for basses). A slight bit of env mod on the filter cutoff is acceptable, but don't go crazy with it, you're not trying to make a 303 here. A really low cutoff with a relatively high resonance will give you alot of crazy harmonics spun off into neverneverland, which once you hit on a nice sweet spot with give the impression of deeper bass." [7]



Drums

Modular

PC Speaker

echo -e '\a'
beep - beep the pc speaker any number of ways
beep -f 200 -f 300
  # beep at 300Hz.
  • https://github.com/przemoc/pcspk - PCSpk is a set of command line applications for playing simple sounds and melodies using the PC speaker. It is inspired by simple, but really great Johnathan Nightingale's beep.
  • What’s up with the Beep driver in Windows 7? - Earlier today, someone asked me why 64bit versions of windows don’t support the internal PC speaker beeps. The answer is somewhat complicated and ends up being an interesting intersection between a host of conflicting tensions in the PC ecosystem.
speaker-test
  command-line speaker test tone generator for ALSA


Linux

"there are many good reasons to consider Linux [for pro audio]: low- or no-cost software; a high-performance sound system; great audio routing; powerful sound synthesis; high-quality score notation; it's extremely customisable; more of your CPU power may be used for audio processing; it avoids many patent/license restriction pitfalls; it avoids costly tie-ins to specific product ranges; software may be (legally) modified to suit your individual needs; modular software allows you to configure your software studio the way that you want; and it's driven by passion before profit." [8]

News and communities


  • LinuxMusicians forum - mission: to facilitate discussion, learning, and discovery of music making on the Linux platform.


  • Libre Music Production is a community-driven online resource, focused on promoting musical creation and composition using free and open source (FLOSS) software. By providing hands-on material submitted by the community, such as guides, tutorials, articles and news updates, we want to show not only that there is great FLOSS audio software out there, but also how to practically use that software to make music.


Mailing lists

IRC

  • #lau
  • #lad
  • #opensourcemusicians
  • #jack
  • #ardour
  • #ingen

Distros

See Distros#Audio/visual

Audio systems

In a Unix-like operating system, a sound server mixes different data streams and sends out a single unified audio to an output device. The mixing is usually done by software, or by hardware if there is a supported sound card.

The "sound stack" can be visualized as follows, with programs in the upper layers calling elements in the lower layers:

  • Applications (e.g. mp3 player, web video)
  • Sound server (e.g. aRts, ESD, JACK, PulseAudio)
  • Sound subsystem (described as kernel modules or drivers; e.g. OSS, ALSA)
  • Operating system kernel (e.g. Linux, Unix)


"If we were drawing the [internet] OSI model used to describe the networking framework that connects your machine to every other machine on the network, we'd find clear strata, each with its own domain of processes and functionality. There's very little overlap in layers, and you certainly don't find end-user processes in layer seven messing with the electrical impulses of the raw bitstreams in layer one.

"Yet this is exactly what can happen with the Linux audio framework. There isn't even a clearly defined bottom level, with several audio technologies messing around with the kernel and your hardware independently. Linux's audio architecture is more like the layers of the Earth's crust than the network model, with lower levels occasionally erupting on to the surface, causing confusion and distress, and upper layers moving to displace the underlying technology that was originally hidden."

"ALSA itself has a kernel level stack and a higher API for programmers to use, mixing drivers and hardware properties with the ability to play back surround sound or an MP3 codec. Most distributions stick PulseAudio and GStreamer on top[,] ... The deeper the layer, the closer to the hardware it is." [9]


OSS

Old.

The API is designed to use the traditional Unix framework of open(), read(), write(), and ioctl(), via special devices. For instance, the default device for sound input and output is /dev/dsp. Examples using the shell:

cat /dev/random > /dev/dsp
  # plays white noise through the speaker

cat /dev/dsp > a.a
  # reads data from the microphone and copies it to file a.a

ALSA

"ALSA is responsible for translating your audio hardware's capabilities into a software API that the rest of your system uses to manipulate sound. It was designed to tackle many of the shortcomings of OSS (and most other sound drivers at the time), the most notable of which was that only one application could access the hardware at a time. This is why a software component in ALSA needs to manages audio requests and understand your hardware's capabilities.

"ALSA was designed to replace OSS. However, OSS isn't really dead, thanks to a compatibility layer in ALSA designed to enable older, OSS-only applications to run. It's easiest to think of ALSA as the device driver layer of the Linux sound system. Your audio hardware needs a corresponding kernel module, prefixed with snd_, and this needs to be loaded and running for anything to happen. This is why you need an ALSA kernel driver for any sound to be heard on your system, and why your laptop was mute for so long before someone thought of creating a driver for it. Fortunately, most distros will configure your devices and modules automatically. [10]



Information
cat /proc/asound/cards
  # List audio hardware

cat /proc/asound/card0
  # List card info

cat /proc/asound/devices
  # List audio hardware

aplay -L
  # List all PCMs defined

modinfo soundcore
  # Kernel sound module info

lsmod | grep snd

lspci -v | grep -i audio
  # show some kernel info


  • alsacap - ALSA device capability lister. alsacap - ALSA device capability lister. scans soundcards known to ALSA for devices and subdevices. displays ranges of configuration parameters for the given ALSA device.
  • QasConfig is a graphical browser for the configuration tree and can help to analyze and debug an ALSA setup.
Configuration
alsactl
  # advanced controls for ALSA soundcard driver

alsactl init
  # initiate basic configure


  • http://www.alsa-project.org/main/index.php/Asoundrc - Neither the user-side .asoundrc nor the asound.conf configuration files are required for ALSA to work properly. Most applications will work without them. These files are used to allow extra functionality, such as routing and sample-rate conversion, through the alsa-lib layer.

The keyword default is defined in the ALSA lib API and will always access hw:0,0 — the default device on the default soundcard. Specifying the !default name supersedes the one defined in the ALSA lib API.

pcm.NAME { 
	type hw               # Kernel PCM 
	card INT/STR          # Card name or number
  	[device] INT          # Device number (default 0)     
	[subdevice] INT       # Subdevice number, -1 first available (default -1)
	mmap_emulation BOOL   # enable mmap emulation for ro/wo devices
}
  • PCM (digital audio) plugins - these extend functionality and features of PCM devices. The plugins take care about various sample conversions, sample copying among channels and so on.

Plugin: hw

This plugin communicates directly with the ALSA kernel driver. It is a raw communication without any conversions. The emulation of mmap access can be optionally enabled, but expect worse latency in the case.

The nonblock option specifies whether the device is opened in a non-blocking manner. Note that the blocking behavior for read/write access won't be changed by this option. This influences only on the blocking behavior at opening the device. If you would like to keep the compatibility with the older ALSA stuff, turn this option off.

Plugin: file

This plugin stores contents of a PCM stream to file or pipes the stream to a command, and optionally uses an existing file as an input data source (i.e., "virtual mic")


  • http://alsa.opensrc.org/Dmix - Mixing enables multiple applications to output sound at the same time. Most discrete sound cards support hardware mixing, which is enabled by default if available. Integrated motherboard sound cards (such as Intel HD Audio), usually do not support hardware mixing. On such cards, software mixing is done by an ALSA plugin called dmix. This feature is enabled automatically if hardware mixing is unavailable.


  • http://alsa.opensrc.org/Dsnoop - the equivalent of the dmix plugin, but for recording sound. The dsnoop plugin allows several applications to record from the same device simultaneously.


  • http://linux.die.net/man/1/alsaloop - allows create a PCM loopback between a PCM capture device and a PCM playback device, supports multiple soundcards, adaptive clock synchronization, adaptive rate resampling using the samplerate library (if available in the system). Also, mixer controls can be redirected from one card to another (for example Master and PCM).


speaker-test -c 2
  # Using 16 octaves of pink noise, alsa-utils

PulseAudio

  • PulseAudio is a sound system for POSIX OSes, meaning that it is a proxy for your sound applications. It allows you to do advanced operations on your sound data as it passes between your application and your hardware. Things like transferring the audio to a different machine, changing the sample format or channel count and mixing several sounds into one are easily achieved using a sound server.


Configuration

user specific pulseaudio config;

~/.pulse/default.pa
  # to load modules and define defaults
~/.pulse/client.conf
  # to configure a client for the sound server
~/.pulse/daemon.conf
  # to define sample rates and buffers

To avoid .pulse-cookie in home folder, set the following in /etc/pulse/client.conf [11]

cookie-file = /tmp/pulse-cookie

By default, pulseaudio changes master and application volume at the same time. To disable this, edit /etc/pulse/daemon.conf or ~/.config/pulse/daemon.conf with:

flat-volumes = no
Control
man pulse-cli-syntax
  # pulseaudio commandline help


pactl
  # control a running PulseAudio sound server


pacmd
  # reconfigure a PulseAudio sound server during runtime

pacmd list-cards

pacmd dump



Mixer


Other


cat /dev/urandom | padsp tee /dev/audio > /dev/null


JACK

  • JACK is system for handling real-time, low latency audio (and MIDI). It runs on GNU/Linux, Solaris, FreeBSD, OS X and Windows (and can be ported to other POSIX-conformant platforms). It can connect a number of different applications to an audio device, as well as allowing them to share audio between themselves. Its clients can run in their own processes (ie. as normal applications), or can they can run within the JACK server (ie. as a "plugin"). JACK also has support for distributing audio processing across a network, both fast & reliable LANs as well as slower, less reliable WANs.



  • Sound Engineers Guide to Jackd - This page attempts to collect in one place various issues surrounding the design and abilities of Paul Davis's wonderful Jackd from the point of view of a technical user. It is not an introduction or a usage howto.
# jack2 package commands
jack_alias
jack_bufsize
jack_control
jack_cpu
jack_cpu_load
jack_disconnect
jack_evmon
jack_freewheel
jack_iodelay
jack_latent_client
jack_load
jack_metro
jack_midi_dump
jack_midi_latency_test
jack_midiseq
jack_midisine
jack_monitor_client
jack_multiple_metro
jack_net_master
jack_net_slave
jack_netsource
jack_rec
jack_samplerate
jack_server_control
jack_session_notify
jack_showtime
jack_simple_client
jack_simple_session_client
jack_test
jack_thru
jack_transport
jack_unload
jack_wait
jack_zombie

jack_connect fluidsynth:l_00 system:playback_3 jack_connect fluidsynth:r_00 system:playback_4

jack_lsp
  # list jack ports

jack_lsp -c
  # list jack port connections (sinks indented)



alsa_in -j "Description" -d prefix:Name -q 1 2>&1 1> /dev/null &
  # used to send ALSA microphone input to an JACK input device
  # -d = device name, hw:2
  # -q = quality of resampler, 1-4
  # -c = channels, automatic default
  # -r 48000 = sample rate, automatic default
alsa_in
  # can automatically detect and open an available soundcard (what type? doesn't work for usb mic)
arecord -l
 ...
  card 2: AK5370 [AK5370], device 0: USB Audio [USB Audio]
  Subdevices: 0/1
  Subdevice #0: subdevice #0

alsa_in  -dhw:2 -jusb-mic
  # or
alsa_in -dhw:AK5370 -j "USB Mic" 


alsa_out -j "Description" -d prefix:Name -q 1 2>&1 1> /dev/null &
  # used to send JACK output to an ALSA device, like a speaker or headphones


If you get "Capture open error: Device or resource busy", some other program has control of the playback interface.

To see what application has control of the interface:

fuser -u /dev/snd/pcmC0D0p
  # this is card 0, device 0, pcm playback

If it's pulseaudio, launch pavucontrol, go to the Configuration tab and select Off for the device(s).

GStreamer

sndio

  • Sndio is a small audio and MIDI framework part of the OpenBSD project. It provides an lightweight audio & MIDI server and a fully documented user-space API to access either the server or directly the hardware in a uniform way. Sndio is designed to work for desktop applications, but pays special attention to synchronization mechanisms and reliability required by music applications. Reliability through simplicity are part of the project goals.

CRAS

  • CRAS: ChromeOS Audio Server - allows for sound to be routed dynamically to newly attached audio-capable monitors (DisplayPort and HDMI), USB webcam, USB speakers, bluetooth headsets, etc., and in a way that requires as little CPU as possible and that adds little or no latency.

aRts

Enlightened Sound Daemon

Integration

  • Setting up Jack Audio for GStreamer, Flash, and VLC - First of all I need to say that I won't be mentioning Pulseaudio so if that is what you're here for then you are at the wrong place because I don't use Pulseaudio at all, Pulseaudio can be run ontop of Jack but doing so will increase CPU load (a very tiny amount on modern systems).

Windows

  • ASIO4ALL - Universal ASIO Driver For WDM Audio

Network

  • Netjack is a Realtime Audio Transport over a generic IP Network. It is fully integrated into JACK. Syncs all Clients to one Soundcard so no resampling or glitches in the whole network. Packet loss is now also handled gracefully. By using the celt codec, its even possible, that single packet losses get masked by the Packet Loss Concealment Code.
  • JackTrip is a Linux and Mac OS X-based system used for multi-machine network performance over the Internet. It supports any number of channels (as many as the computer/network can handle) of bidirectional, high quality, uncompressed audio signal streaming.

Software lists


An in-depth look at programming sound using Linux — jannewmarch


Audio formats

  • Xiph.Org's Digital Show & Tell- video on digital media explores multiple facets of digital audio signals and how they really behave in the real world.

PCM

  • https://en.wikipedia.org/wiki/Pulse-code_modulation - a method used to digitally represent sampled analog signals. It is the standard form of digital audio in computers, Compact Discs, digital telephony and other digital audio applications. In a PCM stream, the amplitude of the analog signal is sampled regularly at uniform intervals, and each sample is quantized to the nearest value within a range of digital steps.

Linear pulse-code modulation (LPCM) is a specific type of PCM where the quantization levels are linearly uniform. This is in contrast to PCM encodings where quantization levels vary as a function of amplitude (as with the A-law algorithm or the μ-law algorithm). Though PCM is a more general term, it is often used to describe data encoded as LPCM.

A PCM stream has two basic properties that determine the stream's fidelity to the original analog signal: the sampling rate, which is the number of times per second that samples are taken; and the bit depth, which determines the number of possible digital values that can be used to represent each sample.

PDM

  • https://en.wikipedia.org/wiki/Pulse-density_modulation - a form of modulation used to represent an analog signal with a binary signal. In a PDM signal, specific amplitude values are not encoded into codewords of pulses of different weight as they would be in pulse-code modulation (PCM). Instead, it is the relative density of the pulses that corresponds to the analog signal's amplitude. The output of a 1-bit DAC is the same as the PDM encoding of the signal. Pulse-width modulation (PWM) is a special case of PDM where the switching frequency is fixed and all the pulses corresponding to one sample are contiguous in the digital signal. For a 50% voltage with a resolution of 8-bits, a PWM waveform will turn on for 128 clock cycles and then off for the remaining 128 cycles. With PDM and the same clock rate the signal would alternate between on and off every other cycle. The average is 50% for both waveforms, but the PDM signal switches more often. For 100% or 0% level, they are the same.

WAV

  • https://en.wikipedia.org/wiki/WAV - a Microsoft and IBM audio file format standard for storing an audio bitstream on PCs. It is an application of the Resource Interchange File Format (RIFF) bitstream format method for storing data in "chunks", and thus is also close to the 8SVX and the AIFF format used on Amiga and Macintosh computers, respectively. It is the main format used on Windows systems for raw and typically uncompressed audio. The usual bitstream encoding is the linear pulse-code modulation (LPCM) format.


MP3

  • MP3 (MPEG-1 or MPEG-2 Audio Layer III) is a patented encoding format for digital audio which uses a form of lossy data compression. It is a common audio format for consumer audio streaming or storage, as well as a de facto standard of digital audio compression for the transfer and playback of music on most digital audio players.

Encoding

for f in *.wav ; do lame "$f" ; done


  • mp3fs is a read-only FUSE filesystem which transcodes between audio formats (currently FLAC to MP3) on the fly when files are opened and read. It can let you use a FLAC collection with software and/or hardware which only understands the MP3 format, or transcode files through simple drag-and-drop in a file browser. [14]

Metadata

  • eyeD3 is a Python tool for working with audio files, specifically mp3 files containing ID3 metadata (i.e. song info). It provides a command-line tool (eyeD3) and a Python library (import eyed3) that can be used to write your own applications or plugins that are callable from the command-line tool.

AAC

  • Advanced Audio Coding (AAC) is a standardized, lossy compression and encoding scheme for digital audio. Designed to be the successor of the MP3 format, AAC generally achieves better sound quality than MP3 at similar bit rates.

Ogg

Container format.

Vorbis

Opus

  • Opus is a totally open, royalty-free, highly versatile audio codec. Opus is unmatched for interactive speech and music transmission over the Internet, but is also intended for storage and streaming applications. It is standardized by the Internet Engineering Task Force (IETF) as RFC 6716 which incorporated technology from Skype's SILK codec and Xiph.Org's CELT codec.

FLAC

  • FLAC stands for Free Lossless Audio Codec, an audio format similar to MP3, but lossless, meaning that audio is compressed in FLAC without any loss in quality. This is similar to how Zip works, except with FLAC you will get much better compression because it is designed specifically for audio, and you can play back compressed FLAC files in your favorite player (or your car or home stereo, see supported devices) just like you would an MP3 file. FLAC stands out as the fastest and most widely supported lossless audio codec, and the only one that at once is non-proprietary, is unencumbered by patents, has an open-source reference implementation, has a well documented format and API, and has several other independent implementations.

AMR

AC-3

NICAM

  • https://en.wikipedia.org/wiki/NICAM - an early form of lossy compression for digital audio. It was originally developed in the early 1970s for point-to-point links within broadcasting networks. In the 1980s, broadcasters began to use NICAM compression for transmissions of stereo TV sound to the public.

Vinyl


Playlists

Players

See also Video#Players, Platforms#Media, Distros#Data and media

To merge with Video#Players

Commandline players

aplay

aplay -D hw:0,0 test.wav
  # play file on specific device 

jplay2

  • jplay2 is a command-line audio player, gluing JACK, libsamplerate and liblo (OSC control). it plays a single file (no playlist), but with ffmpeg & libsndfile it plays every file one throws at it (even DVD-vobs or timemachine-w64 ;-) ). Once started, it's only possible to interact with jplay2 via OSC or jack-transport.

jack-play

  • jack-play - a light-weight JACK sound file player. It creates as many output ports as there are channels in the input file. It will connect to ports mentioned at -p or in the environment variable JACK_PLAY_CONNECT_TO which must include a %d pattern to indicate port number, otherwise it implements no connection logic, use jack-plumbing(1) instead.

jack_playfile

cplay

  • cplay - a curses frontend for various audio players. It aims to provide a power-user-friendly interface with simple filelist and playlist control. Since cplay' is written in Python, it can use either pyncurses or the standard curses module. The program currently supports ogg123, mpg123, mpg321, splay, madplay, and mikmod, xmp, and sox.

plays files more than once.

mcplay

MOC

  • MOC - music on console. console audio player for Linux/UNIX.
mocp

doesn't stop playing after enter is pressed to started, not even when quit!

mpg123

SAP

  • SAP (Simple Audio Player) is a command line audio player written in vala and utilizing the gstreamer library for audio playback and Ncurses for an interactive interface. As such, sap will be able to play any audio file that gstreamer is capable of playing. Aside from local files, sap can also play files from the internet over HTTP.

cannot build on arch (without faff?)

cmus

  • cmus is a small, fast and powerful console music player for Unix-like operating systems.

mpfc

  • MPFC is a gstreamer-based audio player with curses interface

autoplays all samples after playing one, annoying

mps

playlist based, non wav?

whistle

sauditor

  • sauditor is a simple sample auditor. doesn't compile without fftw2 that includes rfftw.h (not in current AUR version). good luck.

audiobrowse.bash

basic script, no autostart, gives errors but works.

Noice

Other

  • MadJACK is a MPEG Audio Deck for the Jack Audio Connection Kit with an OSC based control interface. It was written as a backend for DJ music playback.
  • TTtrigger is intended for theatre use. It uses jack to trigger sound effects and other sounds to predefined audio ports. A shortcut key can be assigned to each sound effect or you can trigger the sounds sequentially. TTtrigger uses the Qt toolkit. Linux is the only supported operating system at this time.

MicroMusicPlayer

Peyote

MPD

  • beets catalogs your collection, automatically improving its metadata as it goes using the MusicBrainz database. Then it provides a bouquet of tools for manipulating and accessing your music. Because beets is designed as a library, it can do almost anything you can imagine for your music collection. Via plugins, beets becomes a panacea: Fetch or calculate all the metadata you could possibly need: album art, lyrics, genres, tempos, ReplayGain levels, or acoustic fingerprints. Get metadata from MusicBrainz, Discogs, or Beatport. Or guess metadata using songs’ filenames or their acoustic fingerprints. Transcode audio to any format you like. Check your library for duplicate tracks and albums or for albums that are missing tracks. Browse your music library graphically through a Web browser and play it in any browser that supports HTML5 Audio and lots more.
  • RelaXXPlayer is a ajax-based web-frontend for the Music Player Daemon (MPD). RelaXX includes features like keyboard-control, drag and drop, context-menus, sortable tracklists and more using JavaScript. Can be used as a public jukebox for MP3 or OGG. To use the Client you need a working web-server and PHP installed.


ncmpcpp

  • ncmpcpp - NCurses Music Player Client (Plus Plus) - featureful ncurses based MPD client inspired by ncmpc

Shiva

wtfplay

other





  • http://wiki.gpodder.org/wiki/Panucci Panucci - play audio books, podcasts and live concerts. It will automatically resume the playback from the position where you stopped last time.



GUI

mplayer

  • mpv - a free, open source, and cross-platform media player, fork of mplayer2, fork of MPlayer
  • GNOME MPV is a simple GTK+ frontend for mpv. GNOME MPV interacts with mpv via the client API exported by libmpv, allowing access to mpv's powerful playback capabilities.


XMMS2

  • XMMS2 will: play your music. manage your music library. use collections to help you organise your music as you like. allow you to control it using a variety of clients. run on Linux, *BSD, OS X, Solaris, and Windows.


deadbeef

Aqualung

  • Aqualung is an advanced music player originally targeted at the GNU/Linux operating system, today also running on FreeBSD and OpenBSD, with native ports to Mac OS X and even Microsoft Windows. It plays audio CDs, internet radio streams and podcasts as well as soundfiles in just about any audio format and has the feature of inserting no gaps between adjacent tracks.

Pragha

  • Pragha is a Lightweight Music Player for GNU/Linux, based on Gtk and sqlite. It is completely written in C, constructed to be fast, light, and simultaneously tries to be complete without obstructing the daily work.

qmpp

  • qmpp - audio-player written with the help of the Qt library. The user interface is similar to winamp or xmms. Alternative user interface also is available.

Potamus

SampleCat

SurPluS

  • https://github.com/rhetr/surplus - surfer/browser for plugins and samples. listen to audio samples in an easily-navigable Qt-based file browser made for the task. when you find what you want, drag&drop it into your preferred environment. works with carla, drumkv1, ardour and any other app that supports drag-and-drop.

Larger GUI




Web players

See Streaming#Web players

See also JS libs#Audio

Streaming

See Streaming, Radio

Podcasting

CD

  • Boom - an easy to use audio player intended for casual computer users who do not wish to spend their time on figuring more sophisticated software out. All of its most important features are easily accessible out-of-the-box.

Ripping

Asunder

  • Asunder - a graphical Audio CD ripper and encoder for Linux. You can use it to save tracks from an Audio CD as any of WAV, MP3, OGG, FLAC, Opus, WavPack, Musepack, AAC, and Monkey's Audio files.

morituri

Fingerprinting

  • Echoprint is an open source music identification system that allows anyone to build music fingerprinting into their application. It is powered by The Echo Nest, in partnership with Musicbrainz.

Conversion

SoundConverter

  • SoundConverter is the leading audio file converter for the GNOME Desktop. It reads anything GStreamer can read (Ogg Vorbis, AAC, MP3, FLAC, WAV, AVI, MPEG, MOV, M4A, AC3, DTS, ALAC, MPC, Shorten, APE, SID, MOD, XM, S3M, etc...), and writes to Opus, Ogg Vorbis, FLAC, WAV, AAC, and MP3 files, or use any GNOME Audio Profile.

Perl Audio Converter

  • Perl Audio Converter - A tool for converting multiple audio types from one format to another. It supports the following audio formats: 3G2, 3GP, 8SVX, AAC, AC3, ADTS, AIFF, AL, AMB, AMR, APE, AU, AVR, BONK, CAF, CDR, CVU, DAT, DTS, DVMS, F32, F64, FAP, FLA,

FLAC, FSSD, GSRT, HCOM, IMA, IRCAM, LA, MAT, MAUD, MAT4, MAT5, M4A, MP2, MP3, MP4, MPC, MPP, NIST, OFF, OFR, OFS, OPUS, OGA, OGG, PAF, PRC, PVF, RA, RAW, RF64, SD2, SF, SHN, SMP, SND, SOU, SPX, SRN, TAK, TTA, TXW, VOC, VMS, VQF, W64, WAV, WMA, and WV.

Secret Rabbit Code

  • Secret Rabbit Code (aka libsamplerate) is a Sample Rate Converter for audio. One example of where such a thing would be useful is converting audio from the CD sample rate of 44.1kHz to the 48kHz sample rate used by DAT players. SRC is capable of arbitrary and time varying conversions ; from downsampling by a factor of 256 to upsampling by the same factor. Arbitrary in this case means that the ratio of input and output sample rates can be an irrational number. The conversion ratio can also vary with time for speeding up and slowing down effects.

SRC provides a small set of converters to allow quality to be traded off against computation cost. The current best converter provides a signal-to-noise ratio of 145dB with -3dB passband extending from DC to 96% of the theoretical best bandwidth for a given pair of input and output sample rates. Since the library has few dependencies beyond that provided by the standard C library, it should compile and work on just about any operating system. It is known to work on Linux, MacOSX, Win32 and Solaris. With some relatively minor hacking it should also be relatively easy to port it to embedded systems and digital signal processors.

audiomap

  • audiomap is a program which converts from any audio format to any other in a uniform & sane fashion so you don't have to learn all the options for conversion program x. It will preserve all tags in the process. It's goal is bullcrap free conversion. I wrote it because while there are plunty of shell scripts out there to convert things to/from a few formats, they suck at handling weird characters and often even spaces! On top of this, they usually do not properly preserve metadata. Audiomap works with funky chars, spaces, and preserves metadata - all whilst providing encoding/decoding through many formats.

resample

Control

Jack configuration

You probably won't need to use these.


pasuspender -- jackd
  # temporaraly suspend pulseaudio and start jack (needed for jack1 without PA patch)

 jackd -R -P89 -s -dalsa -dhw:0 -r48000 -p256 -n3
  # start jackd

JACK2 DBUS

jack_control start
  # starts the jack server

jack_control stop
  # stops the jack server

jack_control ds alsa
  # selects alsa as the driver (backend)

jack_control eps realtime True
  # set engine parameters, such as realtime

jack_control dps period 256
  # set the driver parameter period to 256


QjackCtl

Cadence

  • Cadence is a set of tools useful for audio production. Cadence itself is also an application (the main one), which this page will document. There are other applications that are part of the Cadence suite, they are usually named as the "Cadence tools". They are: Catarina (simple patching), Catia (patching), Claudia (LADISH)
    • Cadence controls and monitors various Linux sound systems as well as audio-related system settings
cadence --minimized &

jackman

ASTRUX

Sessions


LASH

  • LASH - a session management system for GNU/Linux audio applications. It allows you to save and restore audio sessions consisting of multiple interconneced applications, restoring program state (ie loaded patches) and the connections between them.

dead

  • GLASHCtl - a simple applet for controlling the LASH Audio Session Handler. When you run it it will appear as a small LASH icon in your "notification area" or "system tray".

LADISH

  • ladish - LADI Session Handler, a rewrite of LASH. a session management system for JACK applications on GNU/Linux. Its aim is to allow you to have many different audio programs running at once, to save their setup, close them down and then easily reload the setup at some other time. ladish doesn't deal with any kind of audio or MIDI data itself; it just runs programs, deals with saving/loading (arbitrary) data and connects JACK ports together. It can also be used to move entire sessions between computers, or post sessions on the Internet for download. ladish has GUI frontend, gladish, based on lpatchage (LADI Patchage). and the ladish_control command line app for headless operation. LADI Tools is set of apps that interface with ladish, JACK server and a2jmidid

kinda dead

Claudia

  • Claudia - a LADISH frontend; it's just like Catia, but focused at session management through LADISH.

requires jack2 (dbus)

  • Claudia-Launcher is a multimedia application launcher with LADISH support. It searches for installed packages (not binaries), and displays the respective content as a launcher. The content is got through an hardcoded database, created and/or modified to suit the target distribution.


Non Session Manager

  • Non Session Manager is a graphical interface to the NSM Daemon (nsmd). By default, running the command non-session-manager will start both the GUI and an instance of the daemon. NSM manages clients together in a session. That's it. NSM doesn't know or care what Window Manager or audio subsystem those clients use--nor should it. Specific clients must be written to persist these environmental factors, and added to sessions when required.

For saving and restoring the JACK connection graph, a simple headless client named jackpatch has been developed and included in the NSM distribution. Simply add jackpatch do your basic template session and all the sessions you base on it will have their JACK connection graphs automatically saved and restored.

non-session-manager -- --session-root path


  • http://non.tuxfamily.org/wiki/nsm-proxy - a simple NSM client for wrapping non-NSM capable programs. It enables the use of programs supporting LADISH Level 0 and 1, and programs which accept their configuration via command-line arguments.


  • https://github.com/rhetr/nsm-git - makes git a little easier to use with non session manager sessions. creates a git repository in the current session and commits all untracked and unstaged files to it whenever save is pressed. nsm-git also reads the session.nsm file and deletes any saved applications that are not listed in the session. This program is meant to be executed within NSM.

MonoMultiJack

  • MonoMultiJack a program for managing, starting and stopping Jackd and music programs. Another feature is connecting and disconnecting Jack audio and MIDI ports, as well as ALSA MIDI ports. It is programmed in Mono using GTK# as GUI toolkit.

JackLinx

Preselected applications.

pyjacksm

chino

  • chino - a 'special-purpose session manager', requiring customisation to cover one or more similar setups. Once customised, using it is dead simple. Perhaps it is best to not overstress the term "session management", instead describing chino as a framework and toolset to build and manage a meta-application consisting of the user's favorite modular Jack audio and Midi tools, each started and interconnected in predefined ways.
chino -n newproject
  # start newproject in current directory

chino -o existingproject
  # open existingproject

Routing

  • QJackConnect - a QT based patchbay for the JACK Audio Connection Kit .

Catia

  • Catia is a JACK Patchbay, with some neat features like A2J bridge support and JACK Transport.

Patchage

  • Patchage is a modular patch bay for audio and MIDI systems based on Jack and Alsa.


Patchmatrix

  • Patchmatrix is a simplistic JACK patchbay in matrix configuration. It shows only the clients and ports that are of interest to you, allows you to see all connections at a single glance and features single-click (dis)connections.

jsweeper

  • jsweeper will be a programmable port connection manager for ALSA sequencer and JACK audio and midi ports. Ports are laid out in a matrix so that connecting or disconnecting a port or a group of ports is just one mouse click or keypress.


njconnect

CliConnect

esjit


aj-snapshot

  • aj-snapshot is a small program that can be used to make snapshots of the connections made between JACK and/or ALSA clients. Because JACK can provide both audio and MIDI support to programs, aj-snapshot can store both types of connections for JACK. ALSA, on the other hand, only provides routing facilities for MIDI clients. You can also run aj-snapshot in daemon mode if you want to have your connections continually restored.
aj-snapshot filename
  # make a snapshot

aj-snapshot -r filename
  # restore a snapshot

aj-snapshot -d filename &
  # run in daemon mode


  • Robust Session Management - QJackCTL and Patchage for setup, diagnostics, and testing, aj-snapshot for management of Jack and ALSA MIDI connections, The DBus version of Jack2

JMess

  • JMess - A utility to save your audio connections (mess). JMess can save an XML file with all the current Jack Audio connections. This same file can be loaded to connect everything again. The XML file can also be edited. It also also has the option to disconnect all the clients.

jack_snapshot

  • https://sourceforge.net/projects/heaven/files/Audio%20Applications/Jack%20Related/jack_snapshot/ jack_snapshot - a little tool for storing/restoring jack connection states. it does this by writing/reading the names of the connected ports into/from a simple textfile. and here is also one weakness: some jack clients don't use the same jack name on each run, but dynamically assign one [like meterbridge] but most of them can be told to use a specific name, so this isn't really a problem. at least not for me. some pattern matching might be added in the future..

jack-plumbing

  • jack-plumbing maintains a set of port connection rules and manages these as clients register ports with JACK- Port names are implicitly bounded regular expressions and support sub-expression patterns.

jack-matchmaker

  • jack-matchmaker - a small command line utility that listens to JACK port registrations by clients and connects them when they match one of the port pattern pairs given on the command line at startup. jack-matchmaker never disconnects any ports. The port name patterns are specified as pairs of positional arguments or read from a file (see below) and are interpreted as Python regular expressions

Jack Sanity

  • Jack Sanity - A scriptable environment using JavaScript for controlling jackdbus clients.

jacklistener etc.


jack-stdout

  • jack-stdout is a small tool that writes JACK audio-sample data to buffered standard output. jack-stdin reads raw audio data from standard-input and writes it to a JACK audio port.


Zita-ajbridge

  • Zita-ajbridge provides two applications, zita-a2j and zita-j2a. They allow to use an ALSA device as a Jack client, to provide additional capture (a2j) or playback (j2a) channels. Functionally these are equivalent to the alsa_in and alsa_out clients that come with Jack, but they provide much better audio quality. The resampling ratio will typically be stable within 1 PPM and change only very smoothly. Delay will be stable as well even under worse case conditions, e.g. the Jack client running near the end of the cycle.
cat /proc/asound/cards

zita-a2j -dhw:3,0 -jwebcam

jack_audio_send / jack_audio_receive

native JACK 32 bit float audio data on the network using UDP OSC messages.

Plugins

Formats

VST

paths:

~.vst
/usr/lib/vst
/usr/local/lib/vst
~/.wine/drive_c/Program Files (x86)/VstPlugins
~/.wine/drive_c/Program Files/VstPlugins


  • JackAss is a VST plugin that provides JACK-MIDI support for VST hosts. Simply load the plugin in your favourite host to get a JACK-MIDI port. Each new plugin instance creates a new MIDI port.


LADSPA

~/.ladspa
/usr/local/lib/ladspa
/usr/lib/ladspa

LV2

  • LV2 - an open standard for audio plugins, used by hundreds of plugins and other projects. At its core, LV2 is a simple stable interface, accompanied by extensions which add functionality to support the needs of increasingly powerful audio software.

Unix paths:

~/.lv2
/usr/local/lib/lv2
/usr/lib/lv2
lv2ls
  # list all lv2 plugins available

LV2 is a successor of both LADSPA (audio effects) and DSSI (instruments) with some backwards compatibility. The scope of the API more or less equals to the sum of LADSPA and DSSI, not in the last place thanks to its modular design.


  • lv2file is a simple program which you can use to apply effects to your audio files without much hassle.
  • lv2proc generates an output sound file by applying a LV2 effect plugin to an input sound file.


  • LV2 Create - a GUI utility that lets you easily enter information about a plugin, without needing to know too many details about LV2 (certainly not about those godawful, over-engineered, developer/enduser hostile, inefficient, easily-broken TTL files. Terrible design for audio work). Then you click a button, and the utility creates the TTL files, and C skeleton code for the plugin. You just need to add your DSP code, and compile to create your plugin. It even generates the GNU Makefile for you.


  • NASPRO bridges - a collection of bridges to LV2 that, once installed, allow you to use plugins developed for other plugin standards in LV2 hosts. As of now, it contains two bridges: a LADSPA 1.1 bridge and a DSSI 1.0.0/1.1.0 bridge.




DSSI


Creating

See also #Audio programming and #Graphical programming

  • HISE - a cross-platform open source audio application for building virtual instruments. HISE emphasizes on sampling, but includes some basic synthesis features for making hybrid instruments. You can build patches, design a custom interface and compile them as a VST / AU plug-in or iOS app.

Hosts

Multiple

Carla
  • Carla is an audio plugin host, with support for many audio drivers and plugin formats. It has some nice features like automation of parameters via MIDI CC (and send output back as MIDI too) and full OSC control. Carla currently supports LADSPA (including LRDF), DSSI, LV2, VST2/3 and AU plugin formats, plus GIG, SF2 and SFZ file support. It uses JACK as the default and preferred audio driver but also supports native drivers like ALSA, DirectSound or CoreAudio.
Ingen
Jost
  • Jost (dead) is the first open source multi-technology (native vst, ladspa, dssi) host in linux. It will mainly host a chain of plugins per instance, publishing jack, alsa and alsa_seq ports in order to be connected in your main stream flow. it still have some very good features that makes it a first class host.

VST

  • MrsWatson - a command-line audio plugin host. It takes an audio and/or MIDI file as input, and processes it through one or more audio plugins. Currently MrsWatson only supports VST 2.x plugins, but more formats are planned in the future. MrsWatson was designed for primarily three purposes: Audio plugin development and testing, Automated audio processing for servers or other applications, Unit testing audio plugins


  • dssi-vst - Run Windows VST plugins on Linux. DSSI doesn't support host tempo to plugin features.


  • FST - a program by which uses Wine, Jack and Steinberg's VST Audio Plug-Ins SDK to enable the use of many VST audio plugins under Gnu/Linux.
  • FeSTige - a GUI for fst and dssi-vst, allowing you to run Windows VST plugins on Linux.
fsthost -g ~/.vst
  # build plugin db
export VST_PATH=~/VST:/usr/share/vst:/otherlocation

fsthost -g
fsthost_menu
  # Perl GTK menu to startup plugins
fsthost_ctrl
  # Perl GTK app for control via TCP socket
fsthost_list
  # simple application to show known plugins ( read about XML DB )

export FSTMENU_GTK=2 # or 3


  • Airwave - a WINE-based VST bridge, that allows for the use of Windows 32- and 64-bit VST 2.4 audio plugins with Linux VST hosts
  • https://pastebin.com/aDNcdRjp - "Airwave is very nice, but adding more than a few plugins to it is awfully tedious. So I've taken the matter into my own hands and written a script to add a large number of plugins to Airwave (plus the ability to edit their names) as a batch process." [21]


  • https://github.com/osxmidi/LinVst - a Linux vst plugin that runs Windows 64 bit vst's. To use LinVst, the linvst.so file simply needs to be renamed to match the windows vst dll's filename.


  • VSTForx - a full-modular effect network creation tool which comes as a VST-plugin. With VSTForx you are able to load any number of VST-plugins and connect them anyway you want. Additional modules allow you to manipulate such signal chains and offer a whole new way in mixing and producing. Windows/Mac. $.q


DSSI

  • ghostess - a rough start at a graphical DSSI host, based on jack-dssi-host, but capable of saving and restoring plugin configuration, as well as specifying MIDI channels and layering synths. ghostess includes three MIDI drivers: an ALSA sequencer MIDI driver, a (clumsy but functional) CoreMIDI driver (which allows ghostess to be used on Mac OS X), and a JACK MIDI driver for use with the MIDI transport in recent versions (>=0.105.0) of JACK. ghostess also comes with a universal DSSI GUI, which attempts to provide GUI services for any DSSI or LADSPA plugin, and may be used with any DSSI host.

LADSPA

  • JACK Rack is an effects "rack" for the JACK low latency audio API. The rack can be filled with LADSPA effects plugins and can be controlled using the ALSA sequencer. It's phat; it turns your computer into an effects box.
  • jackspa - A small utility which will host a LADSPA plugin, providing JACK ports for its audio inputs and outputs, and sliders in a gtkmm GUI for its control inputs. I find it useful for hosting plugins with odd port configurations (such as a vocoder or a ring modulator), and for testing plugins. This project is pretty hacky. I threw it together quickly because I needed it in a hurry, and as a result, it's fairly buggy, and the code is a mess. But, it does the job.
  • ng-jackspa is a set of simple user interfaces that host a LADSPA plugin, providing JACK ports for its audio inputs and outputs, and dynamic setting of its control inputs. Additionally, the plugin controls can be exported to or controlled by control voltages on standard JACK audio ports.
  • Soundtank hosts LADSPA plugins in "realtime objects" which embody the structure of the audio signal flow. RTObjects can be controlled in a completely customizeable fashion using MIDI events sent through the ALSA sequencer interface.
  • Stomper - a virtual pedalboard for guitar, using commonly-available audio plugins in a user-defined arrangement and MIDI for switching. It is intended for on-stage use and will be optimized as such.

LV2

  • zynjacku - JACK based, GTK (2.x) host for LV2 synths. It has one JACK MIDI input port (routed to all hosted synths) and one (two for stereo synths) JACK audio output port per plugin. Such design provides multi-timbral sound by running several synth plugins.


  • Jalv is a simple but fully featured LV2 host for Jack. It runs LV2 plugins and exposes their ports as Jack ports, essentially making any LV2 plugin function as a Jack application.
jalv.qt5 http://drumkv1.sourceforge.net/lv2


  • Synthpod is both LV2 host and plugin. It can be run as a standalone app and be used as a tool for live performances or general audio and event filtering. Or it can be run as a plugin itself inside another host (or inside itself) to add support for non-linear patching where only strictly linear connections are supported (e.g. as in most DAWs). Patching of audio channels is clickless.


  • Elven that comes with this software package is written for revision 2 of the LV2 specification and is NOT compatible with revisions 3 and later. It may work, it may break subtly or it may give your computer the swine flu.


  • mod-host is an LV2 host for JACK, controllable via socket or command line

DAW

Digital Audio Workstation

Ardour

Extra

  • harvid - HTTP Ardour Video Daemon, decodes still images from movie files and serves them via HTTP.

Qtractor

  • Qtractor is an Audio/MIDI multi-track sequencer application written in C++ with the Qt4 framework. Target platform is Linux, where the Jack Audio Connection Kit (JACK) for audio, and the Advanced Linux Sound Architecture (ALSA) for MIDI, are the main infrastructures to evolve as a fairly-featured Linux desktop audio workstation GUI, specially dedicated to the personal home-studio.
  • YouTube: Why, Phil? - Yassin Philip's Free Open Source Studio

MusE

To use a softsynth:

  1. MusE Settings menu
  2. Midi Ports / Soft Synth
  3. Add synth instance
  4. Switch midi send on track to synth instance

LMMS

  • LMMS is a free cross-platform software which allows you to produce music with your computer. This covers creating melodies and beats, synthesizing and mixing sounds and arranging samples. You can have fun with your MIDI keyboard and much more – all in a user-friendly and modern interface. Furthermore LMMS comes with many ready-to-use instrument and effect plugins, presets and samples.

No lv2 support. [22]

Rosegarden

No lv2 support. [23]

Open Octave

Non

  • Non - Powerful enough to form a complete studio, fast and light enough to run on low-end hardware like the eeePC or Raspberry Pi, and so responsive and reliable that it can be used live, the Non DAW Studio is a modular system composed of four main parts: Non Timeline, a non-destructive, non-linear audio recorder and arranger. Non Mixer, a live mixer with effects plugin hosting and advanced Ambisonics spatialization control. Non Sequencer, a live, pattern based MIDI sequencer, and finally, the Non Session Manager to tie together these applications and more into cohesive song-level units.

Minimal, modular..


Unintuitive - one has to manually type in other Non application commands to link them to a track session.

Menus close when you click on them, argh.

On start, must create an actual project (Project/New) to add tracks.

No GUI item to import audio files, must be dragged into track list.

Doesn't auto switch tracks to stereo mode when stereo wav is imported.

No master track, must be created and routed manually.

Channel strips needs to be manually (and externally) routed with other Non apps.....

Laggy, clunky..

BEAST/BSE

  • Beast a music composition and modular synthesis application released as free software under the GNU LGPL, that runs under Unix. It supports a wide range of standards in the field, such as MIDI, WAV/AIFF/MP3/OggVorbis/etc audio files and LADSPA modules. It allows for multitrack editing, unlimited undo/redo support, real-time synthesis support, 32bit audio rendering, full duplex support, multiprocessor support, conditional MMX/SSE utilisation for plugins, precise timing down to sample granularity, on demand and partial loading of wave files, on the fly decoding, stereo mixing, FFT scopes, MIDI automation and full scriptability in scheme.

Requires the https://github.com/tim-janik/rapicorn GUI library, can't get the dang thing to build..

./configure PYTHON=/usr/bin/python2.7

Need to figure out how to get LDFLAGS='-llibpng12.a' (older libpng) to work properly.

Radium

  • Radium is a music editor with a new type of interface - Tracker-like but with waveforms instead of hex codes). Compared to the normal sequencer interface editing is quicker and more musical data fits on the screen. However, despite its unusual appearance, it's a design goal for Radium to be straightforward to use, and easy to learn. It should not be harder to learn Radium than any tracker or most midi sequencers. [24]

For AUR build to work;

curl -LO http://www.steinberg.net/sdk_downloads/vstsdk360_22_11_2013_build_100.zip
unzip vstsdk360_22_11_2013_build_100.zip
mkdir -p ~/SDKs/vstsdk2.4
cp -va "VST3 SDK/." ~/SDKs/vstsdk2.4

MusiKernel

  • MusiKernel is an all-in-one DAW and suite of instrument & effect plugins, designed to be easy to install and use without the need for any 3rd party software. Simply install the package for your operating system, select your audio and MIDI hardware, and start making music.

Pros: Quick to use, nice conception of a DAW.

Mids: Can only use own plugins, makes it fast.

Cons: UI could do with some polishing.

potential FRs:

  • send volume control
  • when renaming, keep item name border even when mouse not over, pressing enter finishes renaming
  • when copying an item, ctrl-v to paste it in the original track
  • when drawing a sequencer item, click drag release for length
  • when adding a sequencer sound item, highlight the beat it will be added at
  • ctrl mousewheel up and down for horizontal zoom in and out
  • note length?
  • click track/metronome
  • double click on stop = panic
  • ray-v - noise generator

LNX_Studio

Konfyt

  • Konfyt is a digital keyboard workstation for Linux which allows the user to easily and quickly set up patches, each with multiple layers, and instantly switch between these patches for seamless live keyboard playing. Patches may consist of multiple layers of Soundfonts (.sf2), SFZs, audio input ports and MIDI output ports.

produce

  • https://github.com/mntmn/produce - a new, minimal linux DAW (mainly a sequencer) for hackers. scalable vector UI based on the GLV toolkit. minilisp as scripting language / project file format and for keybindings. connects via JACK MIDI to synths and audio hardware. connects via multiple JACK Audio outputs to plugin racks for mixing

Genesis

  • Genesis is a work-in-progress digital audio workstation with some ambitious goals: peer-to-peer multiplayer editing, complete plugin safety, and a built-in peer-to-peer community which shares plugins, projects, and samples.

Frinika

  • Frinika is a free, complete music workstation software for Linux, Windows, Mac OSX and other operating systems running Java. It features sequencer, soft-synths, realtime effects and audio recording.

Java, interface is very janky..

REAPER

  • REAPER is digital audio workstation software: a complete multitrack audio and MIDI recording, editing, processing, mixing, and mastering environment. Nagware.





Bitwig

Tracktion

Open Octave Midi

  • Open Octave Midi (OOMIDI) is a fork of Rosegarden 1.7.3, concentrating on Midi matrix, event, and matrix percussion editing, and the development of keystroke and mouse based workflow with Jackmidi intended as it's port device base for predominately orchestral composers and writers.
  • OOM2 is developed from the base code of MusE (Muse Sequencer)

Last development was in 2012.

Libre Octave Studio

  • Libre Octave Studio - LOS, open source MIDI/Audio sequencer. LOS is developed from the base code of OOM2 (OpenOctaveMidi2) and MusE (Muse Sequencer) written by Werner Schweer.

Traverso DAW

Last development was in 2010, website kinda dead.

Ayyi

  • http://ayyi.org/ There is currently one main gui application using Ayyi, AyyiGtk, which aims to be a conventional audio/midi sequencer. Ayyi is a Linux libardour based modular audio production system.

protux

Last development was in 2009.

Wired

  • Wired aims to be a professional music production and creation software running on the Linux operating system. It brings musicians a complete studio environment to compose and record music without requiring expensive hardware.

Last development was in 2009.

Audiotool

  • Audiotool - a powerful online music production studio right in your browser. All crafted with lots of love for the small details. All your tracks, samples and presets are stored on the Audiotool servers and are accessible from any browser. Publish your finished track straight from the app to the Audiotool website, SoundCloud, Youtube or Facebook.

Ableton Live

KRISTAL

  • KRISTAL Audio Engine is a powerful multi-track recorder, audio sequencer and mixer - ideal for anyone wanting to get started with recording, mixing and mastering digital audio. It is designed as a modular system. The main application provides a mixing console, while the audio sequencer, live audio input and so on are loaded as separate Plug-Ins. Windows.

n-Track

Usine

  • Usine is the ultimate Digital Audio Workstation made for live or studio. Usine Pro is designed as a flexible software solution for spontaneous electronic music creation, including live sampling, effect processing, and sound design. Usine can to host VSTs/AU, process and route audio or midi, and design personalized virtual control interfaces. - $

Cantabile

  • Cantabile - Play VSTs, trigger media clips, instantly switch between songs, integrate with your existing hardware, control it all via MIDI and simply perform better. - $

MuLab

  • MuLab - an inspiring music studio for Mac OSX and Windows featuring an integrated top-quality modular synth and effect engine. MuLab is an easy and rock-solid tool designed to create, record, edit and finalize your music. - $

Geist

  • Geist is a next-generation sampling drum machine designed to create evolved beats and grooves, freeing you from the limits of pre-packaged loops and over-complicated DAWs. VST or stand-alone. - $

Mixers

Command-line

  • amixer - a command-line program for controlling the mixer in the ALSA soundcard driver. amixer supports multiple soundcards
amixer -c 0 | pcregrep "control"
  # shows all audio channels


  • JackMiniMix is a simple mixer for the Jack Audio Connection Kit with an OSC based control interface. It supports a user configurable number of stereo inputs, which can then be queried and controlled by sending it OSC messages. It is released under the GPL license.


  • https://github.com/dsheeler/kbd2jackmix - Listen on a keyboard event device and respond to key combinations with jack midi volume messages for use with a midi-aware jack mixer, like jackmix or jack_mixer.


ncurses

  • pulseaudio-mixer-cli - Interactive ncurses UI to control volume of pulse streams. Kinda like alsamixer, focused not on sink volume levels (which can actually be controlled via alsamixer, with alsa-pulse plugin), but rather on volume of individual streams, so you can turn down the music to hear the stuff from games, mumble, skype or browser.

Graphical

  • QasMixer is a desktop mixer application for ALSA's "Simple Mixer Interface".
  • QasHctl is a mixer for ALSA's more complex "High level Control Interface".


/strip/[STRIP_NAME]/[MODULE_NAME]/[PARAMETER_NAME]

See also non-midi-mapper [25]


  • jack_mixer - a GTK+ JACK audio mixer app with a look similar to its hardware counterpart. input to output, and send outputs. only MIDI control of one level and stereo balance! manual send groups, solo and mute.


  • JackMaster - "Master Console" for the jack-audio-connection-kit. no aux sends/returns.
  • jackmixdesk - an audio mixer for JACK with an OSC control interface and LASH support. It has a configurable number of inputs and pre/post sends/outs which can be controlled by sending it OSC messages. There is a XML config file and a GTK interface.
  • https://github.com/cybercatalyst/mx2482 - uses QJackAudio, works with JACK. 24 channels routed to 8 subgroups each with direct out. Three-band parametric EQ for each channel. Aux send/return for each channel, so you can hook in other effects processors. Save and restore complete EQ states. Clean source code and free sofware licensed under GPL. Using latest Qt5, which means it runs on all major platforms.


  • https://github.com/x42/balance.lv2 - for stereo balance control with optional per channel delay. balance.lv2 facilitates adjusting stereo-microphone recordings (X-Y, A-B, ORTF). But it also generally useful as "Input Channel Conditioner". It allows for attenuating the signal on one of the channels as well as delaying the signals (move away from the microphone). To round off the feature-set channels can be swapped or the signal can be downmixed to mono after the delay.
  • Kn0ck0ut - takes two mono 44.1KHz inputs and spectrally subtracts one from the other. It can be used to help create 'acapellas' - to extract vocals from a track - if an instrumental version (or section) of the track is available.






  • MU1 is a simple Jack app used to organise stereo monitoring. It was written originally for use with Ardour2, but still useful with Ardour3 as it provides some extra functions.

Effect

  • faderratic - brings you cross-fading of 2 stereo inputs, but with a mind of its own and a ton of options to change the fade shape, length, limits, frequency and probability. faderratic works by generating a pulse on a tempo-sync frequency, and depending on the probability it may trigger a cross-fade event. You can optionally make the fader auto-return to either side and if you feel like it, trigger a fade manually or control the fader movement totally manually.

Timing

JACK transport


jack_transport> ?
  activate	Call jack_activate().
  exit		Exit transport program.
  deactivate	Call jack_deactivate().
  help		Display help text [<command>].
  locate	Locate to frame <position>.
  master	Become timebase master [<conditionally>].
  play		Start transport rolling.
  quit		Synonym for `exit'.
  release	Release timebase.
  stop		Stop transport.
  tempo         Set beat tempo <beats_per_min>.
  timeout	Set sync timeout in <seconds>.
  ?  		Synonym for `help'.
echo play |jack_transport
  # pass command to execute
  # tempo change doesn't work via this method


  • JackDirector is a Linux app that lets you control Jack Audio Connection Kit's transport play/pause using midi commands (noteon) and let you assign bpm changes and other commands to midi program changes. This program plays a metronome thru 2 audio outputs exposed in Jack.


  • gjacktransport - a standalone application that provides access to the jack audio connection kit‘s, JACK transport mechanism via a dynamic graphical slider. in other words: this software allows to seek Audio/Video media files when they are played along jack transport. Intended for audio-engineers or A/V editors that work with arodour, ecasound, hydrogen and/or xjadeo. Additionally it provides 'gjackclock'. A "Big Clock" display for jack-transport.
  • cabestan is a small GTK+ program that interfaces with the jack audio connection kit to play, rewind, or fast forward the stream via the jack transport interface.
  • jack-transport is a minimalist Jack transport control interface using ncurses. It displays the transport state and current time, and provides standard operating keys.


  • QJackMMC - a Qt based program that can connect to a device or program that emits MIDI Machine Control (MMC) and allow it to drive JACK transport, which in turn can control other programs. JackCtlMMC is a slightly simpler command-line version of QJackMMC.


  • jack-osc - publishes the transport state of the local JACK server as OSC packets over a UDP connection. jack-osc allows any OSC enabled application to act as a JACK transport client, receiving sample accurate pulse stream timing data, and monitoring and initiating transport state change.


  • InConcert - a MIDI-controlled application that allows a musician to control the tempo and synchronization of a MIDI sequence. It features a tap tempo to adjust the beat (and synchronize the beat) and the ability to skip beats or insert beats. It works by controlling the Jack Audio Connection Kit's transport. InConcert depends on Jack and ALSA, and therefore only runs on Linux.

Doesn't work??


  • TapStart - measures a tempo you tap. But: It sends OSC-messages with the tempo or delay to customizable hosts and paths. It updates the Jack tempo on each click (=new averaged tempo). It can start the Jack transport after tapping a defined number of beats.
  • jack-trans2midi - a utility that converts jack transport into midi clock messages


Ableton Link

Metronomes

  • Drumstick Metronome (kmetronome) is a MIDI based metronome using the ALSA sequencer. Intended for musicians and music students, it is a tool to keep the rhythm while playing musical instruments.
    • No decimal BPM, not MIDI driven
  • ametro - a little, simple MIDI Metronome using the ALSA sequencer.
    • No decimal BPM, not MIDI driven


  • klick is an advanced command-line based metronome for JACK. It allows you to define complex tempo maps for entire songs or performances.

JACK transport connect but not driven by it? BPM argument required, doesn't change when transport master runs.

klick -o 12345 60 &
gtklick -q osc.udp://localhost:12345


  • Polygnome - A polyrhythmic metronome in GTK+. Supports ALSA and JACK audio backends.
    • Audio only, no MIDI
  • GTick is an audio metronome application written for GNU/Linux and other UN*X-like operting systems supporting different meters (Even, 2/4, 3/4, 4/4 and more) and speeds ranging from 10 to 1000 bpm. It utilizes GTK+ and OSS (ALSA compatible).
  • Hubcap is a fairly simple metronome *nix app with a tempo fader and both auditory and visual feedback on a beat.
    • Audio only, no MIDI
  • Accelerando is a musical metronome that can speed up, allowing you to practice your music at progressively faster tempos. For example, you could set it to play 60 beats per minute for 4 bars, then automatically speed up by 10 beats per minute, and so on. It runs on Unix.
  • ctronome - OSS audio only. a very simple yet powerful ;) programmable console metronome software.
    • Audio only, no MIDI




  • Open Metronome - Windows only. User definable BPM; Measure can be set to any length, with emphasis on any beat(s); Each beat can be one or more of over forty voices, with the supplied Samples covering the complete General MIDI percussion set, or custom samples; Visual indicator as well as audible output;

Calculation

  • Qrest is a musician toolkit aimed at helping composers, performers, recordists and mixers : Find out the tempo of a musical piece, Calculate delay times, Calculate LFO frequencies (i.e., timing conversions)

Recording

arecord

 arecord -D hw:0 -f cd test.wav

audio-recorder

Ecasound

  • Ecasound is a software package designed for multitrack audio processing. It can be used for simple tasks like audio playback, recording and format conversions, as well as for multitrack effect processing, mixing, recording and signal recycling. Ecasound supports a wide range of audio inputs, outputs and effect algorithms. Effects and audio objects can be combined in various ways, and their parameters can be controlled by operator objects like oscillators and MIDI-CCs. A versatile console mode user-interface is included in the package.
  • Nama manages multitrack recording, mixing and mastering using the Ecasound audio processing engine developed by Kai Vehmanen.

Meterec

  • meterec works as a basic multi track tape recoder. The aim of this software is to minimise the interactions of the users with the computer and allow them to focus on their instrumental performance. For this reason meterec features are minimal. One of the main "limitation" is that meterec can only restart from time 0:00:00.00: if you srew one take, start it over again! rather than learning how to use a specific software to correct what you screw, meterec forces to learn and master your instrument. Good news is previous takes are kept in take history and if in the end, the first one was the best you could play, you can choose it in your final mix.

jack_capture

  • jack_capture is a program for recording soundfiles with jack. The default operation will record what you hear in your loudspeakers into a stereo wav file.

jrec2

  • jrec2 (patched jack_capture) can call hooks (invoke 3rd party software) upon detecting silence or audio. It include an optional random-playback control script that was used in an installation to record voice and if it detects silence plays back random snippets of previously recorded material.

jack-record

  • jack-record is a light-weight JACK capture client to write an arbitrary number of channels to disk.

screcord.lv2

QJackRcd

  • QJackRcd is a simple stereo recorder for Jack with few features as silence processing for automatic pause, file splitting, background file post-processing.

timemachine

  • JACK Timemachine - I used to always keep a minidisc recorder in my studio running in a mode where when you pressed record it wrote the last 10 seconds of audio to the disk and then caught up to realtime and kept recording. The recorder died and haven't been able to replace it, so this is a simple jack app to do the same job. It has the advantage that it never clips and can be wired to any part of the jack graph.

Rotter

  • Rotter is a Recording of Transmission / Audio Logger for JACK. It was designed for use by radio stations, who are legally required to keep a recording of all their output. Rotter runs continuously, writing to a new file every hour. Rotter can output files in servaral different strutures, including all files in a single directory or create a directory structure.The advantage of using a folder hierarchy is that you can store related files in the hour's directory.

Metering

JackMeter

  • Jack Meter is a basic console based DPM (Digital Peak Meter) for JACK. I wrote it for quickly checking remote signal levels, without having to run X11 to use a pretty graphical meter such as meterbridge.

JACK Meterbridge

  • JACK Meterbridge - software meterbridge for the UNIX based JACK audio system. It supports a number of different types of meter, rendered using the SDL library and user-editable pixmaps.

Ebumeter

  • Ebumeter provides level metering according to the EBU R-128 recommendation. The current release implements all features required by the EBU document except the oversampled peak level monitoring.

lv2

  • meters.lv2 is a collection of audio-level meters with GUI in LV2 plugin format.
  • traKmeter - Loudness meter for correctly setting up tracking and mixing levels.
  • K-Meter - Implementation of a K-System meter according to Bob Katz’ specifications.

JACK bitmeter

  • JACK bitmeter is a diagnosis tool for JACK audio software on Linux (and perhaps other systems which have JACK and GTK+ 2.x). As its name might suggest, the bitmeter operates at the bare metal of JACK's I/O layer, looking at the 32 binary digits in each individual sample.

Visualisation

See Lighting#Visualisation

  • APEXvj - Visualise the input live! Plug any device into your microphone hole (or any input). This page will visualise it in realtime. This is still a bit experimental feature so it not might work with everyone


  • HyperMammut - transform sounds to images and vice-versa using single BIG Fourier Transforms (or DCT/DST,etc.).
  • sndpeek - real-time 3D animated display/playback, can use mic-input or wav/aiff/snd/raw/mat file (with playback), time-domain waveform, FFT magnitude spectrum, 3D waterfall plot
  • jack_oscrolloscope - a simple waveform viewer for JACK. The waveform is displayed in realtime, so you can always see the signal the instant it comes through JACK's input port.
  • jack-scope - an oscilloscope for JACK under X11. jack-scope draws either a time domain signal trace or a self correlation trace. Multiple input channels are superimposed, each channel is drawn in a different color. jack-scope accepts OSC packets for interactive control of drawing parameters.



  • spectrojack - A little spectrogram/audiogram/sonogram/whatever for jack. gtk 2 and fftw 3.
  • Spectrum 3D - a 3D audio spectrogram in real time or not from the microphone or an audio file (including recorded file from the microphone); it is compatible with Jack (jack-audio-connection-kit). Optionally, it supports multitouch gestures from touchscreen and touchpad. It is build with the Gstreamer, SDL (or Gtkglext), OpenGl, GTK+-2.0 and uTouch-Geis free libraries and is under GPL license.


  • Le Biniou - As an artist/creator/DJ/VJ, to create live visuals based on your audio performances. As a user/listener, to watch an everlasting and totally unseen creation reacting to the music.
  • VSXu (VSX Ultra) is an OpenGL-based (hardware-accelerated), modular visual programming environment with its main purpose to visualize music and create graphic effects in real-time. Its intention is to bridge the gap between programmer and artist and enabling acreative and inspiring environment to work in for all parties involved. VSXu is built on a modular plug-in-based architecture so anyone can extend it and or make visualization presets ("visuals" or "states"). The program is free software which means it's free from restrictions, free to share and copy, free to adapt / modify and use it any way you like.


  • Signalizer is a all-in-one signal visualizing package with a bunch of unique focus-points; real-time audio visualization with optimized 3D GPU graphics, everything being scalable and zoomable gridlessly as well as being arbitrarily precise in both settings and display. Combined with a rich feature set, Signalizer is suited both for electrical/audio engineers fullscreen-inspecting signals, or for general small windows giving an overview of your audio as you create it.



Analysis

Baudline

  • Baudline is a time-frequency browser designed for scientific visualization of the spectral domain. Signal analysis is performed by Fourier, correlation, and raster transforms that create colorful spectrograms with vibrant detail. Conduct test and measurement experiments with the built in function generator, or play back audio files with a multitude of effects and filters. The baudline signal analyzer combines fast digital signal processing, versatile high speed displays, and continuous capture tools for hunting down and studying elusive signal characteristics.


Friture

SoundRuler

  • SoundRuler is a tool for measuring and graphing sound and for teaching acoustics. Its visual interactive approach to analysis brings you the best of two worlds: the control of manual analysis and the objectivity and speed of automated analysis.

Binary download needs 32-bit libxp to be installed.

BRP-PACU

  • BRP-PACU - A cross platform dual channel FFT based Acoustic Analysis Tool to help engineers analyze live professional sound systems using the transfer function. One feature is the ability to capture four sample plots, average them, and invert to aid in final EQ.

DSP

japa


Spek

  • Spek - helps to analyse your audio files by showing their spectrogram. Spek is free software available for Unix, Windows and Mac OS X.

Visual only.

zrtstr

  • zrtstr is a small command line application for detecting faux-stereo WAV-files, that is, files with two identical channels that should have been saved as mono. Such files are sometimes generated by some audio-editing software and DAWs (I’m looking at you, old Cubase 5). Gotten tired of receiving such files from clients for mixing, as they are using twice the necessary space and require twice the processing power, I decided to deal with this nuisance once and for all. zrtstr is a cross-platform application which runs very fast, thanks to being written in Rust.

DFasma

  • DFasma is a free open-source software which is used to compare audio files in time and frequency. The comparison is first visual, using wavforms and spectra. It is also possible to listen to time-frequency segments in order to allow perceptual comparison. It is basically dedicated to analysis. Even though there are basic functionnalities to align the signals in time and amplitude, this software does not aim to be an audio editor.

ASAnnotation

  • AS Annotation is an application for the analysis and automated or manual annotation of sound files. It features state of the art sound analysis algortithms, specialized sound inspection tools and can import Standard MIDI files. ASAnnotation is based on AudioSculpt, a sound analysis and transformation software developed at IRCAM since 1996. In addition to the analysis and annotation features present in AS Annotation, AudioSculpt comes with state of the art sound processing, mostly based on an enhanced version of the phase vocoder. To store and exchange analysis and annotation data, ASAnnotation can use two formats; MIDI for notes and text, and SDIF for all analyses. The MIDI support facilitates the verification, alignment and correction of Standard MIDI Files to soundfiles. SDIF is a specialized format for sound description data, which combines very high precision with efficiency and interchangeability. Numerous other programs support SDIF, such as Max/MSP, OpenMusic, CLAM and SPEAR. A collection of utility programs can be used to convert SDIF files to text.

harmony-analyser

Toscanalyzer

  • Toscanalyzer is a powerful audio analysis tool for mixing and mastering. Toscanalyzer helps you to mix and master better. It is not only an analysis tool but a complete guide to understand why your song sounds as it sounds. Toscanalyzer lets you compare audible and visually your project to any reference songs in a very convenient way. Toscanalyzer offers a clear project view including many options to analyze. The analysis gives you a detailed report about possible problems and in addition a clear guidance how to fix it.

Java. Doesn't work for me.

SPAN

Raven Lite

pyAudioAnalysis

Feature extraction

aubio

  • aubio is a tool designed for the extraction of annotations from audio signals. Its features include segmenting a sound file before each of its attacks, performing pitch detection, tapping the beat and producing midi streams from live audio. Because these tasks are difficult, we thought it was important to gather them in a dedicated library. To increase the fun, we have made these algorithms work in a causal way, so as to be used in real time applications with as low delay as possible. Functions can be used offline in sound editors and software samplers, or online in audio effects and virtual instruments.
  • Aubio-LV2-Plugins is an unoffial set of LV2 plugins which wrap the functionality of the audio analysis library Aubio. Currently it consists of a transient/steady state separator, and an onset detector.

Vamp

  • Vamp is an audio processing plugin system for plugins that extract descriptive information from audio data — typically referred to as audio analysis plugins or audio feature extraction plugins.

auditok

  • auditok is an Audio Activity Detection tool that can process online data (read from an audio device or from standard input) as well as audio files. It can be used as a command line program and offers an easy to use API.

Beats per minute

  • bonk - Pure Data unit [bonk~] is a very useful musical tool for performance and composition. It processes a stream of audio on its input and produces messages when it thinks the signal matches certain patterns. It doesn't have an audio output, just messages. What [bonk~] does is analyse the incoming signal.
  • MiniBPM is a simple, reliable tempo estimator for use in music audio applications. It quickly gets you a fixed beats-per-minute estimate from a sample of audio, provided the tempo doesn't change too much in it.
  • libbeat - a lightweight beat detection library for Qt. It currently supports ALSA and PulseAudio. It uses fftw to process the samples.
  • bpm-tools software is the result of some experiments I did into automatically calculating and tagging the tempo (in beats-per-minute) of music files. Right now the code serves as the best explanation of the algorithm — a relatively simple application of an autocorrelation by statistical sampling. As yet, there is no scientific comparison of the algorithm with others software.
  • BeatDetektor - uses a very simple statistical model designed from scratch by myself to detect the BPM of music and provides real-time feedback useful for visualization and synchronization.


  • MIDI Trigger - LV2 plugin which detects peaks by audio signal and sends MIDI notes.


  • BeatCounter - a simple plugin designed to facilitate beatmatching software and turntables. It displays the current tempo in beats per minute (BPM), and an accumulated average over the last few seconds. BeatCounter is the perfect tool for DJ’s that want to integrate computer effects with turntables or a live band.


  • Tapita - (snack in spanish) is a BPM detector trough keyboard, MIDI and jack written in C with GTK2.

Frequency

Silence

Essentia

  • Essentia - an open-source C++ library for audio analysis and audio-based music information retrieval released under the Affero GPLv3 license (also available under proprietary license upon request). It contains an extensive collection of reusable algorithms which implement audio input/output functionality, standard digital signal processing blocks, statistical characterization of data, and a large set of spectral, temporal, tonal an== Metering ==
  • http://www.soundonsound.com/sos/jun00/articles/metring.htm

JackMeter

  • Jack Meter is a basic console based DPM (Digital Peak Meter) for JACK. I wrote it for quickly checking remote signal levels, without having to run X11 to use a pretty graphical meter such as meterbridge.

JACK Meterbridge

  • JACK Meterbridge - software meterbridge for the UNIX based JACK audio system. It supports a number of different types of meter, rendered using the SDL library and user-editable pixmaps.

Ebumeter

  • Ebumeter provides level metering according to the EBU R-128 recommendation. The current release implements all features required by the EBU document except the oversampled peak level monitoring.

lv2

  • meters.lv2 is a collection of audio-level meters with GUI in LV2 plugin format.
  • traKmeter - Loudness meter for correctly setting up tracking and mixing levels.
  • K-Meter - Implementation of a K-System meter according to Bob Katz’ specifications.

JACK bitmeter

  • JACK bitmeter is a diagnosis tool for JACK audio software on Linux (and perhaps other systems which have JACK and GTK+ 2.x). As its name might suggest, the bitmeter operates at the bare metal of JACK's I/O layer, looking at the 32 binary digits in each individual sample.

Audio programming

Less GUI, more code.

See also Computing#Programming, #Notation formats

  • https://en.wikipedia.org/wiki/Comparison_of_audio_synthesis_environments - typically consist of an audio programming language (which may be graphical) and a user environment to design/run the language in. Although many of these environments are comparable in their abilities to produce high-quality audio, their differences and specialties are what draw users to a particular platform. This article compares noteworthy audio synthesis environments, and enumerates basic issues associated with their use.





  • FFmpegSource (usually known as FFMS or FFMS2) is a cross-platform wrapper library around FFmpeg/libav. It gives you an easy, convenient way to say "open and decompress this media file for me, I don't care how you do it" and get frame- and sample-accurate access (usually), without having to bother with the sometimes less than straightforward and less than perfectly documented libav API.



  • Echo Nest Remix is the Internet Synthesizer. Make amazing things from music, automatically. Turn any music or video into Python or JavaScript code.


  • Designing Sound by Andy Farnel
  • Welsh's Synthesizer Cookbook: Synthesizer Programming, Sound Analysis, and Universal Patch Book



  • Making Computers Sing - When most people think of computer music or sounds, “blips” and “bleeps” often are the first things to come to mind. Let’s dive in and look and at some of the ways a computer musician would make this sound Comparing Max MSP and PureData, Csound, Supercollider and ChucK, Faust.

bash

cat /dev/urandom | hexdump -v -e '/1 "%u\n"' | awk '{ split("0,2,4,5,7,9,11,12",a,","); for (i = 0; i < 1; i+= 0.0001) printf("%08X\n", 100*sin(1382*exp((a[$1 % 8]/12)*log(2))*i)) }' | xxd -r -p | aplay -c 2 -f S32_LE -r 16000

Historical

MUSIC-N

1957

  • https://en.wikipedia.org/wiki/MUSIC-N - refers to a family of computer music programs and programming languages descended from or influenced by MUSIC, a program written by Max Mathews in 1957 at Bell Labs. MUSIC was the first computer program for generating digital audio waveforms through direct synthesis. It was one of the first programs for making music (in actuality, sound) on a digital computer, and was certainly the first program to gain wide acceptance in the music research community as viable for that task.

The world's first computer-controlled music was generated in Australia by programmer Geoff Hill on the CSIRAC computer which was designed and built by Trevor Pearcey and Maston Beard. However, CSIRAC produced sound by sending raw pulses to the speaker, it did not produce standard digital audio with PCM samples, like the MUSIC-series of programs.

Less obviously, MUSIC can be seen as the parent program for: RTSKED (a later RealTime Scheduling language by Max Mathews), Max/MSP Pure Data, AudioMulch, SuperCollider, JSyn, Common Lisp Music, ChucK, or any other computer synthesis language that relies on a modular system (e.g. Reaktor).

1969

Ported to a PDP10, Music V became the Mus10 music compiler system and played scores composed in Leland Smith's SCORE language.

  • SCORE-11 was originally designed for Vercoe’s MUSIC11 system. MUSIC11, which was written in PDP-11 assembly language, was replaced in 1986 by CSOUND, a version of the program written in the programming language C, and which runs on many different computer systems. SCORE-11 works well with either version of Vercoe’s program, which will be referred to as CSOUND in this manual except where the distinction is important.

SSSP

In designing the system, we decided early on to adopt a highly interactive approach to the design of the human interface. Batch processing as in Music V (Mathews: 1969) is an alternative, but one which widely separates the composer and the program, causing serious delays in the feedback loop. We feel a score editor must be interactive because there are facets of the task which demand control and aesthetic judgment by the composer in an interactive and exploratory manner. Several modes of interaction have previously been used in music systems, such as alphanumeric text as in MUSlC10 (Smith: 1978), voice recognition (Tucker, Bates, Frykberg, Howrath Kennedy, Lamb, Vaughan: 1977), and piano -type keyboard (New England Digital Corp.: 1978). In our work we have adopted a bias towards graphics -based interaction (Baecker: 1979; Newman and Sproull: 1979) in the belief that this approach can make a significant contribution towards an effective human interface. First, music lends itself well to representations in the visual domain. Second, the task of editing music is complex in the sense that there are many parameters and commands to be manipulated and controlled this complexity can be reduced by the graphic representation of information. Third, previous work (Pulfer: 1972; Tanner: 1972; Vercoe: 1975) indicates that more congenial interfaces can be constructed using dynamic graphics techniques.

SAMBOX

1977

The compiler was replaced in 1977 with dedicated synthesis hardware in the form of the Systems Concepts Digital Synthesizer (built by Peter Samson and known as the ``Samson Box). The Samson Box was capable of utilizing many types of synthesis techniques such as additive synthesis, frequency modulation, digital filtering and some analysis-based synthesis methods. The PLA language, written by Bill Schottstaedt, allowed composers to specify parametric data for the Samson Box as well as for other sound processing procedures on the PDP10 mainframe (and on its eventual replacement, a Foonly F4). On April 3, 1992, the Foonly and Samson Box were officially retired.

Common Music

1989

  • Common Music (CM) - a music composition system that transforms high-level algorithmic representations of musical processes and structure into a variety of control protocols for sound synthesis and display. Its main user application is Grace (Graphical Realtime Algorithmic Composition Environment) a drag-and-drop, cross-platform app implemented in JUCE (C++) and S7 Scheme. In Grace musical algorithms can run in real time, or faster-than-real time when doing file-based composition. Grace provides two coding languages for designing musical algorithms: S7 Scheme, and SAL, an easy-to-learn but expressive algol-like language.

Common Music can write scores in several different syntaxes (currently CLM, CMN, Music Kit, MIDI, CSound and Paul Lansky's real-time mixing program, RT). The scores can then be rendered on workstations using any of the target synthesis programs. For example, CLM (Common Lisp Music, written by Bill Schottstaedt) is a widely used and fast software synthesis and signal processing package that can make use of multiple Motorola 56001 DSPs.

Pla is the intellectual ancestor of CM.

Common Lisp Music

1997

  • CLM (originally an acronym for Common Lisp Music) is a sound synthesis package in the Music V family. It provides much the same functionality as Stk, Csound, SuperCollider, PD, CMix, cmusic, and Arctic — a collection of functions that create and manipulate sounds, aimed primarily at composers (in CLM's case anyway). The instrument builder plugs together these functions (called generators here), along with general programming glue to make computer instruments. These are then called in a note list or through some user interface (provided by Snd, for example).

Csound

  • Csound is the "ultimate" software synthesizer. Csound is an incredibly powerful signal processor. Csound is a program that runs on virtually every major hardware platform and Csound supports all operating systems. Most importantly, Csound is open source and Csound is FREE! For years now, Csound has been offering innovative sound designers, composers, and producers a unique and powerful palette with which to create and sculpt innovate and diverse works. Csound is not restricted to any style of music, and has been employed for many years in the creation of classical, pop, techno, ambient, and experimental avant-garde computer music, as well as music for film and television.
  • https://en.wikipedia.org/wiki/Csound - Csound was originally written at MIT by Barry Vercoe, based on his earlier system called Music 11, which in its turn followed the MUSIC-N model initiated by Max Mathews at the Bell Labs. Its development continued throughout the 1990s and 2000s, led by John ffitch at the University of Bath. The first documented version 5 release is version 5.01 on March 18, 2006.

CSoundQT

  • CsoundQt is a frontend for Csound featuring a highlighting editor with autocomplete, interactive widgets and integrated help. It is a cross-platform and aims to be a simple yet powerful and complete development environment for Csound. It can open files created by MacCsound. Csound is a musical programming language with a very long history, with roots in the origins of computer music. It is still being maintained by an active community and despite its age, is still one of the most powerful tools for sound processing and synthesis. CsoundQt hopes to bring the power of Csound to a larger group of people, by reducing Csound's intial learning curve, and by giving users more immediate control of their sound. It hopes to be both a simple tool for the beginner, as well as a powerful tool for experienced users.

Cabbage Studio

  • http://www.cabbageaudio.com/ Cabbage Studio is a Csound based DAW with a fully functional patching interface and development environment. Develop, prototype and test Csound based audio instruments on the fly using an integrated development solution that includes an embedded source code editor and rapid GUI designer. Cabbage Studio isn't just for users familiar with Csound, it can load a number of different plugin formats including VST, AU, and LADSPA and comes with over 100 high end audio plugins ready to use out of the box.


PWCsound

  • PWCsound is a tool for software synthesis control implemented in Pwgl (a visual programming environment based on Lisp and Clos), provides a graphical interface to Csound6 programming language. PWCsound is, of course, inspired by several historical Patchwork libraries (in particular by Csound/Edit-sco for Patchwork, better know as "PW-Csound", 1993) and Open Music. The connection between the techniques of computer aided composition and sound synthesis has been explored within these software: Csound/Edit-sco, Pwcollider, Om2Csound, OmChroma

Other

  • CMask is a score file generator for Csound. Its main purpose is the generation of events to create textures of granular sounds. Versions for MacOS9, Win, Linux.


  • Hadron Particle Synthesizer - The Hadron particle synthesizer is the ultimate creative tool for granular synthesis. It is available in different plugin formats (VST, AU and Max For Live), even though the graphic appearance is slightly different for the different plugins wrappers, the audio functionality of Hadron is the same in all formats.



Cmix / RTcmix

  • RTcmix - An Open-Source, Digital Signal Processing and Sound Synthesis Language, one of the MUSIC-N family of computer music programming languages. RTcmix is descended from the MIX program developed by Paul Lansky at Princeton University in 1978 to perform algorithmic composition using digital audio soundfiles on a IBM 3031 mainframe computer. After synthesis functions were added, the program was renamed Cmix in the 1980s. Real-time capability was added by Brad Garton and David Topper in the mid-1990s, with support for TCP socket connectivity, interactive control of the scheduler, and object-oriented embedding of the synthesis engine into fully featured applications.

RTcmix has a number of unique (or highly unusual) features when compared with other synthesis and signal processing languages. For one, it has a built-in MINC parser, which enables the user to write C-style code within the score file, extending its innate capability for algorithmic composition and making it closer in some respects to later music software such as SuperCollider and Max/MSP. It uses a single-script instruction file (the score file), and synthesis and signal processing routines (called instruments) exist as compile shared libraries. This is different from MUSIC-N languages such as Csound where the instruments exist in a second file written in a specification language that builds the routines out of simple building blocks (organized as opcodes or unit generators). RTcmix has similar functionality to Csound and other computer music languages, however, and their shared lineage means that scripts written for one language will be extremely familiar-looking (if not immediately comprehensible) to users of the other language.

C

  • Microtone - How tiny you ask? 128 bytes. The sound generation itself takes up just 14 lines of assembly, generating 31 bytes of machine code. The rest is taken up the ELF header and functions needed to open the sound device and outputting samples
  • Coding an Equalizer - This article expands the section on page 20 of my book The Audio Expert that describes briefly how digital equalizers work. As explained in the book, all equalizers are based on filters of various types. Computer code that implements a filter is called Digital Signal Processing, or DSP for short. Most digital filters emulate equivalent analog filters, and the common language for all filters is mathematics. Therefore, several trigonometry formulas are shown below, and there's no escaping this! But the basic operation of the computer code that implements an equalizer is not too difficult to follow, even if you don't understand the formulas. To keep this example as brief as possible, the code implements a simple high-pass filter having one pole (6 dB per octave). Formulas to implement other filter types including those used in parametric equalizers are shown on the Cookbook Formulae web page by Robert Bristow-Johnson.

ld_preload sounds

  • https://github.com/gordol/ld_preload-sounds - Generates WAV output by hooking malloc() and read(). Adding support for other calls should be pretty easy, pull-requests are much welcomed! Also, it should go without saying... but I will say it anyway... this is experimental.

sndlib

  • io.c (read and write sound file data)
  • headers.c (read and write sound file headers)
  • audio.c (read and write sound hardware ports)
  • sound.c (provide slightly higher level access to the preceding files)
  • sndlib.h (header for the preceding files)
  • sndlib2xen.c and sndlib-strings.h (tie preceding into s7, Ruby, or Forth)
  • clm.c and clm.h (Music V implementation)
  • clm2xen.c, vct.c and vct.h (tie clm.c into s7, Ruby, or Forth)
  • xen.h, xen.c (the embedded language support)

libsndfile

  • http://www.mega-nerd.com/libsndfile/ - a C library for reading and writing files containing sampled sound (such as MS Windows WAV and the Apple/SGI AIFF format) through one standard library interface. It is released in source code format under the Gnu Lesser General Public License.

Audio File Library

  • Audio File Library is a C-based library for reading and writing audio files in many common formats. The Audio File Library provides a uniform API which abstracts away details of file formats and data formats. The same calls for opening a file, accessing and manipulating audio metadata (e.g. sample rate, sample format, textual information, MIDI parameters), and reading and writing sample data will work with any supported audio file format. The Audio File Library lets you work with audio data in whatever format is most convenient for you.

bloopsaphone

lyd

  • Lyd - an embeddable signal processing language and engine. Suitable for among other things realtime audio effect and instrument synthesis and mixing. It can form the audio core of games, virtual instruments, real-time audio mixing and editing experiments. Lyd is currently mostly an application programmers toy, out of the box at the moment lyd contains a mediocre autogenerated approximation of an OPL2 FM synthesizer in its patch set. When you launch lyd you can use it as a synthesizer with an attached MIDI keyboard or with MIDI sequencers supporting ALSA midi. Lyd should ble able to enable processing plug-ins for various audio synthesis standards exposing the lyd language and efficiency in interaction to allow live tweaking of the lyd code when composing.

Pyo

  • Pyo - a Python module written in C to help DSP script creation. Pyo contains classes for a wide variety of audio signal processing. With pyo, the user will be able to include signal processing chains directly in Python scripts or projects, and to manipulate them in real time through the interpreter. Tools in the pyo module offer primitives, like mathematical operations on audio signals, basic signal processing (filters, delays, synthesis generators, etc.), but also complex algorithms to create sound granulation and other creative audio manipulations. pyo supports the OSC protocol (Open Sound Control) to ease communications between softwares, and the MIDI protocol for generating sound events and controlling process parameters. pyo allows the creation of sophisticated signal processing chains with all the benefits of a mature and widely used general programming language.

Soundpipe

  • Soundpipe - a lightweight music DSP library written in C. It aims to provide a set of high-quality DSP modules for composers, sound designers, and creative coders. Soundpipe supports a wide range of synthesis and audio DSP techniques which include: Classic Filters (Moog, Butterworth, etc), High-precision and linearly interpolated wavetable oscillators, Bandlimited oscillators (square, saw, triangle), FM synthesis, Karplus-strong instruments, Variable delay lines, String resonators, Spectral Resynthesis, Partitioned Convolution, Physical modeling, Pitch tracking, Distortion, Reverberation, Samplers and sample playback, Padsynth algorithm [30]

lv2

  • Suil is a lightweight C library for loading and wrapping LV2 plugin UIs.
  • Lilv - a C library to make the use of LV2 plugins as simple as possible for applications. Lilv is the successor to SLV2, rewritten to be significantly faster and have minimal dependencies. It is stable, well-tested software (the included test suite covers over 90% of the code) in use by several applications.
  • Ficus - Realtime audio sampler api for linux devs. This development library provides your application with both multichannel playback/capture of mono wav audio files and all the flexibility and routing possibilities of a JACK client.

C++

Synthesis ToolKit in C++

  • Synthesis ToolKit in C++ (STK) is a set of open source audio signal processing and algorithmic synthesis classes written in the C++ programming language. STK was designed to facilitate rapid development of music synthesis and audio processing software, with an emphasis on cross-platform functionality, realtime control, ease of use, and educational example code. The Synthesis ToolKit is extremely portable (it's mostly platform-independent C and C++ code), and it's completely user-extensible (all source included, no unusual libraries, and no hidden drivers). We like to think that this increases the chances that our programs will still work in another 5-10 years. In fact, the ToolKit has been working continuously for nearly 20 years now. STK currently runs with realtime support (audio and MIDI) on Linux, Macintosh OS X, and Windows computer platforms. Generic, non-realtime support has been tested under NeXTStep, Sun, and other platforms and should work with any standard C++ compiler.

RtAudio

  • RtAudio - a set of C++ classes that provide a common API for realtime audio input/output across Linux (native ALSA, JACK, PulseAudio and OSS), Macintosh OS X (CoreAudio and JACK), and Windows (DirectSound, ASIO and WASAPI) operating systems.

OpenFrameworks

Tonic

  • https://github.com/TonicAudio/Tonic Tonic] - Fast and easy audio synthesis in C++. Prefer coding to patching? Love clean syntax? Care about performance? That's how we feel too, and why we made Tonic.
  • https://github.com/TonicAudio/ofxTonic - Open Frameworks Addon for the Tonic audio synthesis Library. Tonic is an efficient, pure C++ patching tool with a refreshingly crisp and simple syntax.

CLAM

  • CLAM - (C++ Library for Audio and Music) is a software framework for research and application development on the audio and music domain. It provides means to perform complex audio signal analysis, transformations and synthesis. It also provides a uniform interface to common tasks on audio applications such as accessing audio devices and audio files, thread safe communication with the user interface and DSP algorithms recombination and scaling.

You can use CLAM as a library to program your applications in C++ but you can also use graphical tools to build full applications without coding.

  • http://clam-project.org/wiki/SMSTools_tutorial - spectral; analyzes, transforms and synthesizes back a given sound. For doing so, it uses the Sinusoidal plus Residual model (sometimes referred to as SMS but also known as HILN in the context of MPEG4).

JUCE C++ Library

  • https://en.wikipedia.org/wiki/JUCE - Like many other frameworks (e.g., Qt, wxWidgets, GTK+, etc.), JUCE contains classes providing a range of functionality that covers user-interface elements, graphics, audio, XML and JSON parsing, networking, cryptography, multi-threading, an integrated interpreter that mimics ECMAScript's syntax, and various other commonly used features. Application developers needing several third-party libraries may thus be able to consolidate and use only the JUCE library, or at least reduce the number of third-party libraries they use. In this, the original inspiration was Java's JDK, and JUCE was intended to be "something similar for C++".

A notable feature of JUCE when compared to other similar frameworks is its large set of audio functionality; this is because JUCE was originally developed as a framework for Tracktion, an audio sequencer, before being split off into a standalone product. JUCE has support for audio devices (such as CoreAudio, ASIO, ALSA, JACK, WASAPI, DirectSound) and MIDI playback, polyphonic synthesizers, built-in readers for common audio file formats (such as WAV, AIFF, FLAC, MP3 and Vorbis), as well as wrappers for building various types of audio plugin, such as VST effects and instruments. This has led to its widespread use in the audio development community.

JUCE comes with wrapper classes for building audio and browser plugins. When building an audio plugin, a single binary is produced that supports multiple plugin formats (VST & VST3, RTAS, AAX, Audio Units). Since all the platform and format-specific code is contained in the wrapper, a user can build Mac and Windows VST/VST3/RTAS/AAX/AUs from a single codebase.

Jamoma

  • Jamoma - a C++ platform for building dynamic and reflexive systems with an emphasis on audio and media. Platform is composed of a layered framework architecture that creates an object model and then specializes that object model for audio and matrix processing, and system automation and management. Jamoma makes use of polymorphic typing, dynamic binding, and introspection to create a cross-platform API pulling ideas from languages such as Smalltalk and Objective-C while remaining within the bounds of the portable and cross-platform C++ context. The implementations include modular environments for Max by Cycling '74 and Pd by Miller Puckette.

WDL-OL

mopo

Raul

JackCpp

  • JackCpp - c++ classes which wrap the Jack audio io api and lock-free ring buffer. Works with Linux and OSX (thanks to Will Wolcott for OSX testing and example/test file comments).

Maximilian

  • Maximilian - an open source, MIT licensed C++ audio synthesis library. It’s designed to be cross platform and simple to use. The syntax and program structure are based on the popular ‘Processing’ environment. Maximilian provides standard waveforms, envelopes, sample playback, resonant filters, and delay lines. In addition, equal power stereo, quadraphonic and 8-channel ambisonic support is included. There’s also Granular synthesisers with Timestretching, FFTs and some Music Information Retrieval stuff.

LV2

  • LV2 programming for the complete idiot - an LV2 plugin programming guide for the complete idiot using a set of C++ classes. If you are not a complete idiot, you may want to read the LV2 spec and figure it out for yourself.
  • LV2 is an interface for writing audio processors, or plugins, in C/C++ which can be dynamically loaded into many applications, or hosts. This core specification is simple and minimal, but is designed so that extensions can be defined to add more advanced features, making it possibly to implement nearly any feature imaginable. API docs)

Java

Java Sound

JSyn

  • JSyn - allows you to develop interactive computer music programs in Java. You can run them as stand-alone applications, or as Applets in a web page. JSyn can be used to generate sound effects, audio environments, or music. JSyn is based on the traditional model of unit generators which can be connected together to form complex sounds. For example, you could create a wind sound by connecting a white noise generator to a low pass filter that is modulated by a random contour generator.

Beads

  • Beads is a software library written in Java for realtime audio. It was started by Ollie Bown in 2008. It is an open source project and has been developed with support from Monash University in Melbourne, via the Centre for Electronic Media Art‘s ARC Discovery Grant Project “Creative Ecosystems”, and a Small Grant for Early Career Researchers from the Faculty of Information Technology. Beads contributors includes Ollie Bown, Ben Porter and Benito.

JMSL

  • http://www.algomusic.com/jmsl/ JMSL is a Java API for music composition, interactive performance, and intelligent instrument design. With JMSL, the composer/programmer can create stand-alone musical applications or deploy applets on the web. JMSL supports JSyn, MidiShare, MidiPort, and JavaSound.

JFuge

  • JFugue - Music Programming for Java™ and JVM Languages

JASS

  • JASS (Java Audio Synthesis System) is a unit generator based audio synthesis programming environment written in pure Java. Java 1.5 is required. The environment is based on a foundation structure consisting of a small number of Java interfaces and abstract classes, which implement the functionality needed to create filter-graphs, or "patches". Unit generators are created by extending the abstract classes and implementing a single method. Patches are created by linking together unit generators in arbitrary complex graph structures. Patches can be rendered in real-time with special unit generators that communicate with the audio hardware, which have been implemented using the JavaSound API and through JNI for some platforms.

jVSTwRapper

  • jVSTwRapper - an easy and reliable wrapper to write audio plug-ins in Java. It enables you to develop VST (2.4), Audio Unit (AU) and LADSPA compatible audio plugins and virtual instruments plus user interfaces (Swing) and run them on Windows, Linux and Mac OSX. Five demo plugins (+src) are included.

Python

PyJack

  • PyJack - jack audio client module for python

jackclient-python

python-wavefile

  • python-wavefile - Pythonic libsndfile wrapper to read and write audio files.

PyWavelets

  • PyWavelets is a free Open Source wavelet transform software for Python programming language. It is written in Python, Cython and C for a mix of easy and powerful high-level interface and the best performance.

Pippi

  • Pippi - Computer music with python

Undulance

  • Undulance is a Python software synthesis library. It mostly relies on PyPy to work at a sufficient speed, since CPython is too slow.

Matlab

SuperCollider

1996 / OSS in 2002

  • SuperCollider is an environment and programming language for real time audio synthesis and algorithmic composition. It provides an interpreted object-oriented language which functions as a network client to a state of the art, realtime sound synthesis server.






  • Utopia is a SuperCollider library for the creation of networked music applications, and builds upon the work of the Republic Quark and other existing network systems in SuperCollider. It aims to be modular (features available largely 'à la carte'), secure (provides methods for authentication and encryption), and flexible (to the extent possible, it tries not to impose a particular design or architecture). It provides functionality for synchronisation, communication, code sharing, and data sharing.


  • Modality Toolkit - simplifies creation of highly personalised electronic instruments in SuperCollider by introducing a common code interface. This allows for uniform access to HID, MIDI, OSC and GUI-based conrollers, as well as switching of functionality, even at runtime.


Overtone

  • Overtone is an open source audio environment being created to explore musical ideas from synthesis and sampling to instrument building, live-coding and collaborative jamming. We use the SuperCollider synth server as the audio engine, with Clojure being used to develop the APIs and the application. Synthesizers, effects, analyzers and musical generators can be programmed in Clojure.
lein repl
user=>(use 'overtone.live)




ChucK

2003

  • ChucK is a programming language for real-time sound synthesis and music creation. It is open-source and freely available on MacOS X, Windows, and Linux. ChucK presents a unique time-based, concurrent programming model that's precise and expressive (we call this strongly-timed), dynamic control rates, and the ability to add and modify code on-the-fly. In addition, ChucK supports MIDI, OpenSoundControl, HID device, and multi-channel audio. It's fun and easy to learn, and offers composers, researchers, and performers a powerful programming tool for building and experimenting with complex audio synthesis/analysis programs, and real-time interactive music. [31]


  • LiCK - Library for ChucK.

Processing

  • Processing is a flexible software sketchbook and a language for learning how to code within the context of the visual arts. Since 2001, Processing has promoted software literacy within the visual arts and visual literacy within technology. There are tens of thousands of students, artists, designers, researchers, and hobbyists who use Processing for learning and prototyping.


FAUST

2002

  • FAUST (Functional Audio Stream) is a functional programming language specifically designed for real-time signal processing and synthesis. FAUST targets high-performance signal processing applications and audio plug-ins for a variety of platforms and standards. Simply put, Faust lets one program dsp code once in a purely functional language, and compile it to various platforms including max/msp, supercollider, audio unit, vst, and more.




FaustWorks:

git clone git://faudiostream.git.sourceforge.net/gitroot/faudiostream/FaustWorks

FaustLive:




Grouping solution 1: [33]

a = vgroup("term1", nentry("a",1,0,10,1));
b = vgroup("term1", nentry("b",2,0,10,1));
x = vgroup("term2", nentry("x",3,0,10,1));
y = vgroup("term2", nentry("y",4,0,10,1));
process = a*x + b*y;

Solution 2:

a = nentry("v:term1/a",1,0,10,1);
b = nentry("v:term1/b",2,0,10,1);
x = nentry("v:term2/x",3,0,10,1);
y = nentry("v:term2/y",4,0,10,1);
process = a*x + b*y


process = _ : _;       // series combination (1 in, 1 out)
process = _ , _;       // parallel combination (2 ins, 2 outs)
process = +;           // summer (2 ins, 1 out)process = _,_ : +;     // same summer
process = _,_ : + : _; // same summer
process = -;           // signal subtractor
process = *;           // pointwise signal multiplier (nonlinear)7
process = /;           // pointwise signal divider (nonlinear)
process = mem;         // unit-sample delay
process = _, 1 : @;    // unit-sample delay
process = _,10 : @;    // ten-sample delay
process = a ~ b;       // feedback thru b around a
process = _ ~ _ ;      // feedback thru _ (generates 0)
process = mem ~ _;     // two-sample closed loop (generates 0)
process = + ~ _;       // digital integrator
process = _ <: _ , _;  // mono to stereo
process = _ <: _ , _, _, _;     // mono to quad
process = _ , _ <: _ , _, _, _; // stereo to quad (see diagram)
process = _ , _ :> _;           // stereo to mono [equiv to +]
process = _, _ , _ , _ :> _ ;   // quad to mono [equiv to +,+:+]


  • PDF: FAUST : an Efficient Functional Approach to DSP Programming - Yann Orlarey, Dominique Fober and Stephane Letz. FAUST is a programming language that provides a purely functional approach to signal processing while offering a high level of performance. FAUST aims at being complementary to existing audio languages by offering a viable and efficient alternative to C/C++to develop signal processing libraries, audio plug-ins or standalone applications. The language is based on a simple and well formed formal semantics. A FAUST program denotes a signal processor, a mathematical function that transforms input signals into output signals. Being able to know precisely what a program computes is important not only for programmers, but also for compilers needing to generate the best possible code. Moreover these semantics questions are crucial for the longterm preservation of music programs. The following paragraphs will give an overview of the language as well as a description of the compiler, including the generation of parallel code.




  • https://bitbucket.org/agraef/faust-lv2 - provides an LV2 plugin architecture for the Faust programming language. The package contains the Faust architecture and templates for the needed LV2 manifest (ttl) files, a collection of sample plugins written in Faust, and a generic GNU Makefile as well as a shell script to compile plugins using the architecture.
  • https://bitbucket.org/agraef/faust-vst - provides a VST plugin architecture for the Faust programming language. The package contains the Faust architecture, faustvst.cpp, the faust2faustvst helper script which provides a quick way to compile a plugin, a collection of sample plugins written in Faust, and a generic GNU Makefile for compiling and installing the plugins.

Snack Sound Toolkit

  • Snack Sound Toolkit - designed to be used with a scripting language such as Tcl/Tk or Python. Using Snack you can create powerful multi-platform audio applications with just a few lines of code. Snack has commands for basic sound handling, such as playback, recording, file and socket I/O. Snack also provides primitives for sound visualization, e.g. waveforms and spectrograms. It was developed mainly to handle digital recordings of speech, but is just as useful for general audio. Snack has also successfully been applied to other one-dimensional signals.

Music as Data

Extempore

  • Extempore is a programming language and runtime environment designed to support 'cyberphysical programming'. Cyberphysical programming supports the notion of a human programmer operating as an active agent in a real-time distributed network of environmentally aware systems. The programmer interacts with the distributed real-time system procedurally by modifying code on-the-fly.

Central to the Extempore programming environment is a new systems programming language designed to support the programming of real-time systems in real-time. xtlang is designed to mix the high-level expressiveness of Lisp with the low-level expressiveness of C. xtlang uses an s-expression syntax common to Lisp, and more particularly to Scheme. xtlang also borrows many Lisp like semantics including first class closures, tail recursion and macros. However, xtlang also borrows heavily from systems languages like 'C' including static typing, low-level type expressivity, direct pointer manipulation and explicit memory managment (i.e. no GC). xtlang then extends these 'C' semantics with type-inferencing, ad-hoc polymorphism, reified generics, and zone/region based memory management.

Nyquist

  • Nyquist is a sound synthesis and composition language offering a Lisp syntax as well as an imperative language syntax (SAL) and a powerful integrated development environment.. Nyquist is an elegant and powerful system based on functional programming.

athenaCL

  • athenaCL system - an open-source, object-oriented composition tool written in Python. The system can be scripted and embedded, and includes integrated instrument libraries, post-tonal and microtonal pitch modeling tools, multiple-format graphical outputs, and musical output in Csound, SuperCollider, Pure Data, MIDI, audio file, XML, and text formats.

Musical parts are deployed as Textures, layered surface-defining objects containing numerous independent ParameterObjects to control pitch, tempo, rhythm, amplitude, panning, and instrument (Csound) parameters. The system includes an integrated library of Csound and SuperCollider instruments, and supports output for external Csound instruments, MIDI, and a variety of alternative formats. Over eighty specialized Generator, Rhythm, and Filter ParameterObjects provide tools for stochastic, chaotic, cellular automata based, Markov based, generative grammar and Lindenmayer system (L-system), wave-form, fractional noise (1/f), genetic, Xenakis sieve, linear and exponential break-point segments, masks, and various other algorithmic models. ParameterObjects can be embedded in other ParameterObjects to provide powerful dynamic and masked value generation. Textures can be combined and edited, and tuned with algorithmic Temperament objects. Texture Clones allow the filtering and processing of Texture events, performing transformations not possible with parameter generation alone.

Audio Programming Environment

  • Audio Programming Environment (APE) is an open-source audio plugin, that allows to directly script/code DSP real time, integrated in your signal chain. Utilizing a built-in code editor, compiler, console and a basic control surface API, testing and prototyping DSP is extremely easy and convenient.

AudioKit

  • AudioKit is a powerful audio toolkit for synthesizing, processing, and analyzing sounds. It contains several examples for iOS (iPhone & iPad) and Mac OSX, written in both Objective-C and in Swift. A test suite is provided for many of the operations included in AudioKit. A playground project can be used for trying out AudioKit instruments and for greatly speeding up the development of your own instruments and applications. [34]


The #MusicBricks Toolkit

Jacktube

  • Jacktube is an open source audio/MIDI processing program. It uses LADSPA and DSSI plugins to generate and process audio, and MIDI events to control its operation. The exact behavior is defined by using a simple scripting language to define rules. Even though Jacktube is primarily meant for audio work, it can be used in any signal processing application. The language has some superficial similarities to Perl, but the programming language is designed to be as small and efficient as possible for its purpose, namely setting up plugin graphs and responding to MIDI events.

Sonic Pi

  • Sonic Pi - The Live Coding Synth for Everyone. Simple enough for computing and music lessons. Powerful enough for professional musicians. Free to download with a friendly tutorial. Learn to code creatively by composing or performing music in an incredible range of styles from classical to algorave. Ruby DSL.

alda

  • alda - Inspired by other music/audio programming languages such as PPMCK, LilyPond and ChucK, Alda aims to be a powerful and flexible programming language for the musician who wants to easily compose and generate music on the fly, using naught but a text editor. Alda is designed in a way that equally favors aesthetics, flexibility and ease of use, with (eventual) support for the text-based creation of all manner of music: classical, popular, chiptune, electroacoustic, and more! [35] [36] [37]

Platonic Music Engine

  • Platonic Music Engine takes an initial input from the user (like a name or number or random string of characters) and converts it using a non-random process into a piece of music, the Platonic Score. The software then allows you to manipulate this random-sounding music via the use of various style algorithms and quantizers into sounding like any style of music imaginable while still preserving the Platonic Score in its core.

Serpent / Aura

  • Serpent is the scripting language for Aura, a platform for computer music, animation, and interactive systems. Serpent was designed and implemented as a stand-alone, general purpose interpreter. Serpent is perhaps ideal as a game scripting language due to its real-time design and support for external C++ objects and C functions. It is open source, and I would be happy to share code as well as future design and development with others.
  • AuraRT is a software framework for creating interactive multimedia software, particularly advanced interactive music compositions. A subproject is AuraFX, a flexible signal processor configurable by end-users.

https://wiki.python.org/moin/Audio/

TMC

  • TMC - Tiny Music Compiler, a DSL (Domain-Specific Language) that describes a set of operations of audio files. It does not manipulate audio itself. Instead, it calls existing tools such as SoX.

Bipscript

  • bipscript - a simple programming environment for creating music. instantiate and connect LV2 plugins to create audio and MIDI networks, schedule MIDI and other control events directly on the plugins and system outputs, schedule logic to react to external events e.g. from a human performer.

"For this example we'll create two LV2 plugins: a software synthesizer and a reverb; we'll feed the output of the synth into the reverb and connect the reverb to the main system outputs. Also note that we set the initial value of the reverb amount to zero;"

local synth = Lv2.Plugin("http://calf.sourceforge.net/plugins/Monosynth", "Velo Bee")
 
local reverb = Lv2.Plugin("http://calf.sourceforge.net/plugins/Reverb")
reverb.setControl("amount", 0.0)
reverb.connect(synth)
 
local mainOutput = Audio.StereoOutput("main", "system:playback_1", "system:playback_2")
mainOutput.connect(reverb)

Sporth

wcnt

  • wcnt - Wav Composer Not Toilet is a not real time modular audio synthesis/sequencer/sampler application for GNU/Linux systems. It outputs audio into 8/16/24/32bit PCM or floating point format .WAV audio files. wcnt is commandline based and reads plain text files, within which definitions of modules and data objects are placed. Modules are where the synthesis/sampling/sequencing happens and operate on a sample by sample basis. Transmission of events between modules only occurrs at the time of the event. Occurrences of events are transparent, the data stream is continuous.

Tao

  • Tao is a software package for sound synthesis using physical models. It provides a virtual acoustic material constructed from masses and springs which can be used as the basis for building quite complex virtual musical instruments. Tao comes with a synthesis language for creating and playing instruments and a fully documented (eventually) C++ API for those who would like to use it as an object library.


Modus

  • Modus is an open source, cross-platform C++ library which allows you to handle music from code.

OpenAL

AeonWave

  • AeonWave is a low-level, hardware accelerated 4D spatialized audio library aimed at the professional simulation market. The software currently runs on Windows and Linux for ARM and x86 and tests have shown that AeonWave renders 3D audio between 450% and 1400% faster than any competing product depending on the hardware configuration. AeonWave started out as project Anaconda; a fast rendering new OpenAL implementation. After realizing this would not be good enough for spatialized 3D audio demands the library has been rewritten;

Game audio

Creative / live coding

to resort

  • https://en.wikipedia.org/wiki/Creative_coding - a type of computer programming in which the goal is to create something expressive instead of something functional. It is used to create live visuals and for VJing, as well as creating visual art and design, art installations, projections and projection mapping, sound art, advertising, product prototypes, and much more.




Fluxus

  • Fluxus -a rapid prototyping, playing and learning environment for 3D graphics, sound and games. Extends the Racket language with graphical commands and can be used within it’s own livecoding environment or from within the DrRacket IDE. Fluxus is crossplatform (Linux, Windows, OSX, Android, PS2), and is released under the GPL licence.

Impromptu

  • Impromptu - an OSX programming language and environment for composers, sound artists, VJ's and graphic artists with an interest in live or interactive programming. Impromptu is a Scheme language environment, a member of the Lisp family of languages. Impromptu is used by artist-programmers in livecoding performances around the globe.

ixi

  • ixi lang v3 live coding environment is an extremely simple and visual system, presenting a high entry level control over synth definitions and samples in SuperCollider. The core idea is to represent events in a spatial layout, thus merging musical code and musical scores. The score is active, i.e., if a method is performed upon the score, it changes in real time.. The development of ixi lang is part of a research involving human-machine interaction, the philosophy of technology and the culture of software use in music. In return for this free software we would like to ask you few questions regarding your experience of the software.

Tidal

  • TidalCycles - or Tidal for short, is a language for live coding pattern. It allows you to make musical patterns with text, describing sequences and ways of transforming and combining them, exploring complex interactions between simple parts.

Tidal allows you to express music with very flexible timing, providing a little language for describing patterns as step sequences (which can be polyphonic and polymetric), some generators of continuous patterns (e.g. sinewaves, sawtooths) and a wide range of pattern transformations. Tidal is highly ‘composable’ in that pattern transformations can be easily combined together, allowing you to quickly create complex patterns from simple ingredients.

Livecodelab

  • Livecodelab is a special secret place where you can make fancy "on-the-fly" 3d visuals and play awesomely offbeat (literally) sounds. "On-the-fly" meaning: as you type. Type just three letters: "box", and boom! a box appears. No clicking play, no waiting, no nothing. What are you waiting for? Try the magic. Press the button below and play with the examples.

Al-Jazari

  • Al-Jazari is livecoded entirely by gamepad, and employs a simple graphical language to allow robots to interact with each other and move over a terrain populated by audio triggers. The running code is displayed and edited in thought bubbles over each robot. For upcoming performance dates see this page.

Moony.lv2

wavepot


NoiseFunge

Gibber

Protoplug

  • Protoplug - a VST/AU plugin that lets you load and edit Lua scripts as audio effects and instruments. The scripts can process audio and MIDI, display their own interface, and use external libraries. Transform any music software into a live coding environment!

Worp

Klangmeister

  • Klangmeister is a live coding environment for the browser. It lets you design synthesisers and compose music using computer code - without having to install anything on your own computer. Klangmeister works best in Chrome, because the synthesis features that it relies on have patchy support across the other browsers. [39]

Wulfcode

  • Wulfcode - Ostensibly for live-coding, but it’s dramatically simplified compared to the SuperCollider and Csound-based environments used by the live-coding community proper. It’s an object-oriented, text-based MIDI sequencer with its own syntax, and a repertoire of commands and structures that allow interesting looping motifs and polyrythmic phrases to be easily generated and manipulated on the fly.

FoxDot

  • FoxDot is a pre-processed Python-based programming language that provides a fast and user-friendly abstraction to SuperCollider. It also comes with its own IDE, which means it can be used straight out of the box and no fiddling around with config files.

Vult

Fragment

Fragment add sine waves together to produce sounds, the software gather frequencies from vertical slices containing the pixels data of a graphical WebGL powered canvas, each horizontal lines of the score is associated to a pure sine wave generator, all the vertical slices are grouped into one before being "fed" to the synthesis engine, the pixels data (red and green channel) determine the amplitude of the associated sine wave for each audio channels (it is stereophonic) and the vertical position of the pixel determine which sine wave generator is active, the synthesizer is mainly controlled by the visuals generated from the GLSL script.

The synthesizer support the WebMIDI API which is only supported by Chrome and Opera at the moment, it is possible to assign controllers to widgets and controls the GLSL script "uniform" variables.

Praxis Live

  • Praxis LIVE - an open-source hybrid visual environment for live creative coding. Praxis LIVE mixes intuitive real-time visual node editing, with a range of built-in components for audio, visual & data processing, together with an embedded compiler and editor for live-coding Processing, Java and GLSL.

While including specific support for audio and video processing, Praxis LIVE is designed to support other forms of cyber-physical coding.

JavaScript / Web Audio

MIDI



  • Synthy - an online synthesiser and sequencer with live world output and colours made by Filip Hnízdo using the Web Audio API, the live server is powered by socket.io and Node.js. The database of patterns pushed to synthy is powered by the wonderful NeDB.

Audiocogs

DSP.js

  • https://github.com/corbanbrook/dsp.js/ DSP.js is a comprehensive digital signal processing library for javascript. It includes many functions for signal analysis and generation, including Oscillators(sine, saw, square, triangle), Window functions (Hann, Hamming, etc), Envelopes(ADSR), IIR Filters(lowpass, highpass, bandpass, notch), FFT and DFT transforms, Delays, Reverb.

Tone.js

  • Tone.js is a Web Audio framework for creating interactive music in the browser. The architecture of Tone.js aims to be familiar to both musicians and audio programmers looking to create web-based audio applications. On the high-level, Tone offers common DAW (digital audio workstation) features like a global transport for scheduling and timing events and prebuilt synths and effects. For signal-processing programmers (coming from languages like Max/MSP), Tone provides a wealth of high performance, low latency building blocks and DSP modules to build your own synthesizers, effects, and complex control signals.

Sawtooth.io

tonal

  • tonal is a modular, functional music theory library. Built from a collection of modules, it's able to create and manipulate tonal elements of music (pitches, chords, scales, keys). It deals with abstractions (not actual music) and while is designed for algorithmic composition and music generation, can be used to develop any kind of midi or audio software.

Audiolet

  • https://github.com/oampo/Audiolet - a JavaScript library for real-time audio synthesis and composition from within the browser. It uses graph-based routing and pattern-based scheduling to make complex audio simple to program, and easy to understand.

Pedalboard.js

Opimodus / OMN

Wolfram:Alpha

GPU

Graphics synthesis

Variophone

  • https://en.wikipedia.org/wiki/Variophone - developed by Evgeny Sholpo in 1930 at Lenfilm Studio Productions, in Leningrad, the Soviet Union, during his experiments with graphical sound techniques, also known as ornamental, drawn, paper, artificial or synthetic sound. In his research Sholpo was assisted by the composer Georgy Rimsky‐Korsakov. The Variophone was an optical synthesizer that utilized sound waves cut onto cardboard disks rotating synchronously with a moving 35mm movie film while being photographed onto it to produce a continuous soundtrack. Afterwards this filmstrip is played as a normal movie by means of a film projector. Being read by photocell, amplified and monitored by a loudspeaker, it functions as a musical recording process.

Oramics

  • https://en.wikipedia.org/wiki/Oramics - a drawn sound technique designed in 1957 by musician Daphne Oram. The machine was further developed in 1962 after receiving a grant from the Gulbenkian Foundation. Oram's composition machine consisted of a large rectangular metal frame, providing a table-like surface traversed by ten synchronised strips of clear, sprocketed 35mm film. The musician drew shapes on the film to create a mask, which modulated the light received by photocells. Although the output from the machine was monophonic, the sounds could be added to multitrack tapes to provide more texture.

UPIC

  • https://en.wikipedia.org/wiki/UPIC - (Unité Polyagogique Informatique CEMAMu) is a computerised musical composition tool, devised by the composer Iannis Xenakis. It was developed at the Centre d'Etudes de Mathématique et Automatique Musicales (CEMAMu) in Paris, and was completed in 1977. Xenakis used it on his subsequent piece Mycènes Alpha (1978), and it has been used by composers such as Jean-Claude Risset (on Saxatile (1992)), François-Bernard Mâche (Hypérion (1981), Nocturne (1981), Tithon (1989), Moires (1994), Canopée (2003)), Takehito Shimazu (Illusions in Desolate Fields (1994)), Mari King, and Curtis Roads. Aphex Twin talked about it in an interview

Physically, the UPIC is a digitising tablet linked to a computer, which has a vector display. Its functionality is similar to that of the later Fairlight CMI, in that the user draws waveforms and volume envelopes on the tablet, which are rendered by the computer. Once the waveforms have been stored, the user can compose with them by drawing "compositions" on the tablet, with the X-axis representing time, and the Y-axis representing pitch. The compositions can be stretched in duration from a few seconds to an hour. They can also be transposed, reversed, inverted, and subject to a number of algorithmic transformations. The system allows for real time performance by moving the stylus across the tablet. The UPIC system has subsequently been expanded to allow for digitally sampled waveforms as source material, rather than purely synthesised tones.

Coagula

  • Coagula is an image synth. This means that it is both a simple image editor, and a program for making sound from those images.

HighC

  • http://highc.org/ HighC is a graphical music creation tool. It is a synthesizer, a sequencer and a mixer. Its goal is to make music composition as simple and direct as sketching.

Graph-O-Spect

  • Graph-O-Spect - This program embeds images into sound files. It creates a .wav file whose spectograph matches the input .ppm file.

SpectroBits

Graphical programming

Pure Data

See Pure Data

  • Pure Data (aka Pd) is an open source visual programming language. Pd enables musicians, visual artists, performers, researchers, and developers to create software graphically, without writing lines of code. Pd is used to process and generate sound, video, 2D/3D graphics, and interface sensors, input devices, and MIDI. Pd can easily work over local and remote networks to integrate wearable technology, motor systems, lighting rigs, and other equipment. Pd is suitable for learning basic multimedia processing and visual programming methods as well as for realizing complex systems for large-scale projects.

Max/MSP





v.001

  • v.001 is a community driven, open source, modular solution for building easy to (re) use Max/MSP and Jitter patches targeted (but not limited to) visual performers and programmers.

OpenMusic

  • OpenMusic (OM) is a visual programming language based on Lisp. Visual programs are created by asssembling and connecting icons representing functions and data structures. Most programming and operations are performed by dragging an icon from a particular place and dropping it to an other place. Built-in visual control structures (e.g. loops) are provided, that interface with Lisp ones.

Programs in OpenMusic are created by connecting together (a process known as 'patching') either pre-defined or user-defined modules, in a similar manner to graphical signal-processing environments such as Max/MSP or Pd. Unlike such environments, however, the result of an OpenMusic computation will typically be displayed in conventional music notation, which can then be directly manipulated, if so required, via an editor. A substantial body of specialized libraries has been contributed by users, which extends OpenMusic's functionality into such areas as constraint programming, aleatoric composition, spectral music, minimalist music, music theory, fractals, music information retrieval, sound synthesis etc.

Integra Live

  • Integra Live - a modular environment for interactive sound transformation and synthesis. It was developed at Birmingham Conservatoire's Integra Lab and part-funded by the Culture programme of the European Union. Integra Live is designed with musicians in mind An application optimised for the process of experimentation, discovery, refinement and performance.

Open Sound World

  • Open Sound World - or OSW, is a scalable, extensible programming environment that allows musicians, sound designers and researchers to process sound in response to expressive real-time control. OSW combines a familiar visual patching paradigm with solid programming-language features such as a strong type system and hierarchical name spaces. OSW also includes an intuitive model for specifying new components using a graphical interface and high-level C++ expressions, making it easy to develop and share new music and signal-processing algorithms.

AlgoScore

  • AlgoScore is a graphical environment for algorithmic composition, where music is constructed directly in an interactive graphical score. The result is output as audio (through CSound), arbitrary control data (through JACK ports) for control of other applications, MIDI through JACK or to file, or OpenSoundControl messages. The generated audio can be played back through JACK or exported to an audiofile.

vvvv

IanniX

  • IanniX is a graphical open-source sequencer, based on Iannis Xenakis works, for digital art. IanniX syncs via Open Sound Control (OSC) events and curves to your real-time environment.

Fugio

PWGL

  • PWGL is a free visual language based on Common Lisp, CLOS and OpenGL, specialized in computer aided composition and sound synthesis. It is programmed using the Lispworks programming environment and runs under Mac OS X. PWGL integrates several programming paradigms (functional, object-oriented, constraint-based) with high-level visual representation of data and it can be used to solve a wide range of musical problems. PWGL is based on many concepts and ideas that were originally developed for PatchWork (Laurson, Rueda, Duthen, Assayag, Agon) and thus credit should be given to numerous programmers, composers and researchers that were involved in this project.

EyesWeb

  • EyesWeb - an open platform to support the design and development of real-time multimodal systems and interfaces. It supports a wide number of input devices including motion capture systems, various types of professional and low cost videocameras, game interfaces (e.g., Kinect, Wii), multichiannel audio input (e.g. microphones), analog inputs (e.g. for physiological signals). Supported outputs include multichannel audio, video, analog devices, robotic platforms. Various standards are supported, including OSC, MIDI, FreeFrame and VST plugins, ASIO, Motion Capture standards and systems (Qualisys), Matlab. EyesWeb supports real-time synchronized recordings of multimodal channels, and includes a number of software libraries, including the Non-Verbal Expressive Gesture Analysis and the Non-Verbal Social Signals Analysis libs.

Cabel

  • Cabel - a graphical user interface for building csound instruments by patching modules similar to modular synthesizers. It is simply customizable through XML. It's intended for Csound beginners to learn some fundamentals about this wonderful language (although installing all dependencies of Cabel isn't as trivial as it should be) and for advanced Csound users, who want to test their ideas and play with input parameters in a graphical user interface.

MFP

  • MFP - music for programmers, an environment for visually composing computer programs, with an emphasis on music and real-time audio synthesis and analysis. It's very much inspired by Miller Puckette's Pure Data (pd) and MAX/MSP, with a bit of LabView and TouchOSC for good measure.

MOD

  • http://moddevices.com/ - a full hardware audio plugin processor based on Arch Linux, JACK and the LV2 plugin standard. It also has MIDI-in, and a host of synths under the "Generators" tab, making it a tool of choice also for keyboardists (and virtual drummers, etc.). According to various reports and screenshots, there is an application in witch you compose your plugin chain(s) (and setup witch plugin parameter the HW buttons control) before you push it to the MOD pedal to rock away. The MOD-app (and its front-end MOD-ui) is the "desktop" version of this application where the chain is actually functionnal ; It exposes the inputs and the outputs of your soudcard, and you just insert plugins in between.

Blokdust

AlgAudio

Axoloti Patcher

hardware - $

Patchblocks

Geosonix

AudioMulch

  • AudioMulch is an interactive musician's environment for Windows and Mac. It is used for live electronic music performance, composition and sound design. AudioMulch allows you to make music by patching together a range of sound producing and processing modules. Unlike some patcher-based programming environments, AudioMulch's modules perform high-level musical functions, so you don't have to create things from the ground up using individual oscillators and filters. AudioMulch is designed for live performance and improvisation - you can process live audio sources and control every knob and slider on the user interface using a MIDI controller. - $

Reaktor

Isadora

Bidule

audulus

MUX Modular

  • MUX Modular is a high-quality and flexible modular synth and effect plug-in. MUX Modular can be a vintage synthesizer or a hi-tec sample player, it can be a multi-band compressor or a stereo reverb, and it can be so much more... You can do almost anything with it! MUX Modular is integrated into MuLab and is also available as a VST plug-in for Windows. - $

Modular softsynths

See also #SunVox

gAlan

  • gAlan - The Graphical Audio Language. A modular synthesiser - drum-machine - sequencer - effects-unit for Linux and Win32. Like Buzz.

AlsaModularSynth

  • AlsaModularSynth is a realtime modular synthesizer and effect processor. It features MIDI controlled modular software synthesis, Realtime effect processing with capture from e.g. "Line In" or "Mic In", Full control of all synthesis and effect parameters via MIDI, Integrated LADSPA Browser with search capability, JACK Support

ams-lv2

  • ams-lv2 - set of LV2 plugins is a port of the internal modules found in Alsa Modular Synth. These plugins are used to create modular synthesizers and contains: VCO, VCF, VCA, LFO, Slew Limiter, Envelop, Sample & Hold, etc.

avw.lv2

  • avw.lv2 - A port of the AMS internal modules to LV2 plugins. It provides VCOs, LFOs, Filters and other modules controlled using Voltage Controls. They are designed especially to be used with Ingen to create Modular Synths.

Fomp

  • Fomp is an LV2 port of the MCP, VCO, FIL, and WAH plugins by Fons Adriaensen. There are 13 plugins in total: 1 auto-wah, 1 EQ, 3 chorus, 5 filters, and 3 oscillators.

controlfilter.lv2

Omnifono

  • Omnifono is a mixture of various simple utilities in one plugin: amplifier, panner, noise generators, etc.

BLOP

  • BLOP comprises a set of LADSPA plugins that generate bandlimited sawtooth, square, variable pulse and slope-variable triangle waves, principally for use with one of the many modular software synthesisers available. They are wavetable based, and are designed to produce output with harmonic content as high as possible over a wide pitch range.
  • BLOP-LV2 - a mostly faithful port of blop-0.2.8, except plugin variants have been eliminated via the use of morphable Control/CV ports. This way, users do not have to choose from several versions of the same plugin, but the host can configure controls to be control-rate or audio-rate as appropriate. This mechanism is backwards compatible, so these ports will simply appear as normal LV2 control ports in hosts that do not support port morphing.

Omins

  • Omins is a collection of LADSPA plugins geared at modular synthesizers. The name comes from Om, but these plugins are not Om specific in any way, and Om does not require them. However most (not all) of them are only really useful in modular systems.

SpiralSynthModular

  • SpiralSynth Modular is an object orientated music studio with an emphasis on live use. You can use it in a fairly straight forward way to make tracks with, or get very experimental. Audio or control data can be freely passed between the plugins. Data can also be fed back on itself for chaotic effects.

vModSynth

Zyne

  • Zyne is a Python modular synthesizer using pyo as its audio engine. Zyne comes with more than 10 builtin modules implementing different kind of synthesis engines and provides a simple API to create your own custom modules.

Synth-A-Modeler

  • Synth-A-Modeler compiler, enables musicians to synthesize binary DSP modules according to mechanical analog model specications. This open-source tool promotes modular design and ease of use. By leveraging the Faust DSP programming environment, an output Pd, Max/MSP, SuperCollider, VST, LADSPA, or other external module is created, allowing the musician to hear the sound of the physical model in real time using an audio host application.

TX Modular

  • TX Modular system is a modular software synth which is written in the SuperCollider language. It can be used to build interactive audio systems such as: digital musical instruments, interactive generative compositions, sound design tools, live audio processing tools, and group improvisation performance tools.


XSRDO Patchwork Modular System

  • XSRDO Patchwork Modular System - a true modular synthesizer. You can choose what modules you want, where to put them and how many of them you want. Each module is independant of any other and only becomes active when you start to patch them together

in your own creative way. Features... 36 virtual 'racks', 50 virtual 'modules', Insert any module into any rack (except Effects, System and Output [of which only one instance of each type is allowed]), Insert multiple modules, Movable modules. Windows VST.

Kamioooka

  • Kamioooka is a polyphonic Full-Modular synthesizer with patch cable system. You can freely combine modules and make patches. 10 module slots and 7 types of modules (VCO/VCF/VCA/ADSR/LFO/MISC/SEQ) are available. Windows VST.

Cynthia

  • Cynthia - monophonic VSTi, very Old School, but will still be able to keep in tune throughout the song, patches can be stored and it is of course fully MIDI controllable. Cynthia is free to use and will send you 30 years back in time to the dawn of modular synthesis... As the name implies its inspired from the old EMS SynthiA.

KX77FREE

  • Kx-PolyM-CSE - Vintage modular polyphonic synthesizer with CV/GATE sequencer and CS70M* emulation.
  • Kx-PolyMod - Vintage modular polyphonic synthesizer with stereo SF2 player. To build analog 70's leads!
  • Kx-Modulad - Analog modular synthesizer with stereo SF2 player and an additive synthesis WaveTracer to build high quality waveforms. 128 KX presets (70's and 80's).
  • KX-SYNTH-X16-V5 - Vintage modular polyphonic synthesizer.

Drum synths

Stegosaurus

  • Kick - C4
  • Snare - D4
  • Closed hat - E4
  • Open hat - F4

Currently uses MIDI channel 1 rather than 10. [48]

DrumSynth

  • Juced Plugins - We took DrumSynth and EQinox and made them work better and in LV2 format.

Rudolf 556

  • Rudolf 556 - Rudolf 556 is an analogue-sounding drum machine. It has six separate drum engines, two of which are bass drums, two are snares and two are hihats. Each engine has three parameters: L (Length) - pretty obvious what this controls. The higher the value, the longer the drum will sound. H (Hardness or Harshness) - when this value is small the drum will sound "soft" and when it's large it will sound "hard". Basically it controls the amount of noise that is mixed in. V (Volume) - basic gain control.

Smack

  • Smack is a drum synth, 100% sample free. It intends to emulate a large number of famous drum machines (TR/others) as well as sample code for physical modeling. It's built with LADSPA plugins and the Om modular synth.

"Yes, Smack was based on Om, a modular synthesis environment. Ingen is the successor to Om. If we are lucky, Ingen will see a release soon and finally make the step from brilliant in theory to awesome in practice :) The Om codebase is as dead as can be and Smack's author pretty much dropped out of LAU/LAD. Ingen's author David is interested in porting Smack's patches from Om to Ingen, but that clearly has no priority." [49]

KickMaker

Required VST SDK 2 to build

g++ -fPIC -c -I. -I../vstsdk2.4 -I../vstsdk2.4/public.sdk/source/vst2.x -I../vstsdk2.4/vstgui.sf/vstgui -Iplugincore -Igui -Ieffects -D__cdecl="" *.cpp      

g++ -shared -Wl,-soname,KickMaker.so -o KickMaker.so *.o

doesn't register?

Freqatic

Drumatic VE

  • Drumatic VE - inspired by several sounds of the TR-909 and TR-808 drum computers. It isn't just a sample player... It uses smart wavetable synthesis mixed with virtual-analouge synthesis to get the best results. Windows VST.

CM-505

  • CM-505 - a 12 voice drum synth. Windows VST.

TS-808

  • TR-808 - a software emulation (VSTi plugin) of the Roland TR-808. The TR-808 service notes provide full schematics for each voice. I used them to make SPICE simulations of the circuits. I also analysed the best samples I could find (The Tape808, by Goldbaby), and tweaked the sounds until the waveforms and spectral content were as close as possible to the real thing. Most of the voices have more parameters and a greater range than their hardware predecessor. Windows VST.

ES DGenR8

  • ES DGenR8 - a free virtual analog drum machine in the style of Roland's TR Series, in particular the Roland TR-909, with 11 voices and controls that mimic the TR-909: Bass Drum, Snare Drum, Low, Mid & High Toms, Rim Shot, Clap, Open & Closed Hi Hats, Crash & Ride Cymbals. Windows VST.

TW-Opkicker

  • TW-Opkicker - Analogue kick synthesis in digital form, but with some extra features. 4 Oscilators, tweaked and twisted to simulate analogue behavior. Multiple Filters and a Distortion to get the sound you want. Reverb, Echo, Delay and Auto Pan to create all sorts of unusual effects. Us an extra effect like a Maximizer or Compressor to get groundshaking kicks. Playing higher notes turns this machine in a regular synth. Windows VST.

TW-Percussion1

  • TW-Percussion1 - Synth designed for short and percussive sounds. 2 multiple waveform oscilators, 1 noise oscilator. Low Pass/High Pass/Band Pass filter to suit every need. 2 LFO's for the filters, to get that nice modulated sound. Stereo beat synced delay. Windows VST.

DC Bazz::Murda

EXD-80

  • EXD-80 - a flexible drum synth that can produce a wide variety of drum and percussion sounds, from emulations of classic drum machines to crazy, mangled glitch sounds – all synthesized, no samples here! It is suitable for many EDM styles including electro, glitch, industrial, ambient, dubstep, drum & bass and hip hop. Windows VST.

KICKWOrK

  • KICKWOrK - a kick drum synthesizer plugin. From deep hiphop basses to hard rave kicks - everything available with the turn of some knobs. A clear and easy GUI helps you to find your bass drum sound quick. No samples inside - pure analogue emulation. A minimum of knobs for a maximum of variations. Kick sound can be triggered by any incoming MIDI note or by an audio input (bass drum of a drumloop). Windows VST.

Drumatic 3

  • http://www.e-phonic.com/plugins/drumatic3.php - a virtual-analogue drum synthesizer. All sounds are 100% synthetic and allow an enormous flexibility and variation. Sounds: Bassdrum, Snaredrum, Handclap, 2 Toms, Hihats and a Rimshot / Bell. Key features: Graphical envelopes for amplitude and modulation, Load / save presets for single sounds, Simple but effective effect section for each sound with distortion and bitcrusher and a filter., 6 Stereo outputs, assignable for each sound, All parameters can be automated. Windows VST.

ErsDrums

Kick Me Too

Psy-Drums

DR-Fusion V2

daBUMZ

  • daBUMZ - Mainly for bass drum or toms, but the sound can be widely ajusted. Goal was to have a minimum of knobs for a maximum of variations (note: each knob has a hint text for the parameter). daBUMZ does one sound at a time, triggered by MIDI notes or with the mouse on the “eye” in the middle. Available for Windows PC as VST-plugin.

Softsynths

to resort

jack_miniFMsynth

  • jack_miniFMsynth - tiny FM synthesizer, a JACK client and a client of the ALSA sequencer system. This example client is based on the example miniFMsynth.c.

To compile jack_miniFMsynth just type

 cc -o jack_miniFMsynth jack_miniFMsynth.c -ljack -lasound -lm

jack_miniFMsynth takes several parameters:

jack_miniFMsynth <MIDI channel> <FM> <harmonic> <subharmonic> <transpose> <a> <d> <s> <r>
  
 <MIDI channel>   MIDI channel for NOTE events
 <FM>	          Strength of the frequency modulation
 <harmonic>	  Harmonic of the master oscillator (integer)
 <subharmonic>	  Subharmonic of the master oscillator (integer)
 <transpose>	  Note offset for both oscillators (integer)
 <a> <d> <s> <r>  Attack, Decay, Sustain, Release

cursynth

  • cursynth - a polyphonic, MIDI enabled, subtractive synth that runs in your terminal with an ascii interface. cursynth will connect to all MIDI devices and send output to the default audio device on your system.

ZynAddSubFX

  • ZynAddSubFX is a open source software synthesizer capable of making a countless number of instruments, from some common heard from expensive hardware to interesting sounds that you'll boost to an amazing universe of sounds.



  • zyn project main goal is to extract synth engines from ZynAddSubFX and pack them in LV2 plugin format. Resulting plugins are heavily based on work made by Nasca Octavian Paul. If you like the amazing sounds these plugins generate you should thank Paul for this. Project goals: Port ZynAddSubFX synth engines to LV2, Fix some inherit issues preventing hard-realtime mode of operation, causing clicks sometimes (memory allocation/sleep in audio process context), Make synth engines reusable in source form, Make all synth engines parameters controlable on the fly (as opposed to original "parameter change takes effect on next note on" strategy), Fix bugs found and try to propagate fixes to ZynAddSubFX
  • https://github.com/ventosus/zyn_ext_gui - a toolkit agnostic LV2 UI for ZynAddSubFx 2.5.3. This gives you an LV2 UI even if ZynAddSubFx has been linked to FLTK and does not provide an LV2 UI of its own.

Yoshimi

  • Yoshimi - software synthesizer for Linux, a "fork" of ZynAddSubFX. ZynAddSubFX was founded by Nasca Octavian Paul and continued by many others; several years later, Yoshimi was founded by our dear friend, the late Cal, at a time when ZynAddSubFX showed amazing promise but did not satisfy his needs and ours. If you enjoy profound and powerful tonality with your Linux, please do try Yoshimi, we think you will feel the love! The two projects are now in wonderfully active, but different, development.

WONDER

  • WONDER - a software suite for using Wave Field Synthesis and Binaural Synthesis. It's primary platform is Linux, but it can be used under OSX too.

horgand

  • horgand - a softsynth, really simple and easy to use, specially designed to produce organ sounds is also capable to generate other sound types like Electric Pianos (Rhodes, Wurlitzer, DX E.Piano ), Jazz Guitar, Strings, Brass, Fretless Bass, Accordion etc. using low CPU resources. horgand is based on a FM audio synthesizer with twenty carriers (20) without modulators in a plain based algorithm.

AUBE

  • AUBE - a system for sound generation and processing. You can process audio on the fly by setting up arbitrary configurations of sound generators, sequencers and effects modules, through which sound is played, filtered, and recorded.

Helm

Sorcer

  • Sorcer is a polyphonic wavetable synth LV2 plugin. Its sonic fingerprint is one of harsh modulated sub-bass driven walls of sound. Two morphing wavetable oscillators and one sine oscillator provide the generation routines. The LFO can be mapped to wavetable modulation as well as filter cutoff. An ADSR allows for shaping the resulting sound, while a master volume finishes the signal chain. Easily creating a variety of dubstep basslines and harsh pad sounds.

Crazynth

  • Crazynth - What is able to do? Generate weird sounds on random generated basis. Modulate a sine-like wave to get strange outputs. Stereo outputs (a 5.1 surround version is ready, but still to be released).

sfxr

  • sfxr - a little tool made in connection with the 10th Ludum Dare competition held in December 2007 to provide a simple means of getting basic sound effects into a game. The idea was that they could just hit a few buttons in this application and get some largely randomized effects that were custom in the sense that the user could accept/reject each proposed sound. It turned out to work rather well and a lot of the entrants used it, which is cool.
  • sfxr-dssi - a port of the famous sound effect generator sfxr. sfxr-dssi is a very simple but functional example of the use of libwhy.

Bfxr

  • Bfxr - an elaboration of the glorious Sfxr, the program of choice for many people looking to make sound effects for computer games. Bfxr has moved in the direction of increased complexity and range of expression. All the buttons that you know and love are here, but there are some new things as well: 5 new waveforms : triangle, breaker, tan, whistle, and pink noise. 3 new filters : compression, harmonics, and bitcrusher. Ability to lock parameters during mutation/randomization. Expanded pitch-jumping abilities - good for arpeggiation effects. Visualisation, Mixer, Keeps your sounds and mixes in persistant lists. Can reverse synths. Ability to link directly to sounds.

Jfxr

  • Jfxr - a browser-based tool to generate sound effects, for example for use in games. It was inspired by bfxr, but aims to be more powerful and more intuitive to use. [50]

rogue

  • rogue - multimode softsynth with LV2 interface, 4 oscillators with Virtual Analog, Phase Distortion, FM and other waveforms, PWM, PM, Sync, RM and AM modulation, 2 filters with Biquad, Moog and SVF style modes, 4 AHDSR envelopes with customizable curve

4 LFOs, 20 Modulation matrix slots, Effects: Chorus, Phaser, Delay and Reverb, Qt4 based UI

Bristol Collection

  • Bristol Synthesiser Emulations on Linux - or Bristol is an emulation package for a number of different 'classic' synthesisers including additive and subtractive and a few organs. The application consists of the engine, which is called bristol, and its own GUI library called brighton that represents all the emulations. There are currently twenty something different emulations, each does sound different although the author maintains that the quality and accuracy of each emulation is subjective. One of the main reasons for putting together this site (host by Sourceforge which provides the rest of the services required by bristol) is to depict all the different emulations.

JuceOPLVSTi

hexter

  • hexter - Yamaha DX7 modeling DSSI plugin

Dexed

  • dexed - FM VSTi/AU plugin synthesizer. Dexed is a multi platform, multi format plugin synth that is closely modeled on the Yamaha DX7. Under the hood, it uses music-synthesizer-for-android for the synth engine and JUCE as a plugin wrapper. The goal of this project is to be a great tool/companion for the original DX7. Yes, the sound engine with 'float' values parameter; different waveform (a la TX81z) would be great but anything that goes beyond the DX7 should will be a fork of this project. This is to keep the compatiblity with the original synth.

LegaSynth

  • LegaSynth - an old chip/synthesizer emulator on top of an advanced software sound synthesis programming framework. It currently emulates the Yamaha DX7 FM Synth, the MOS6581SID (C64 soundchip), the Yamaha 2xxx FM series (very common in some personal synths, arcades, and the Sega Genesis), and the TB303. It supports the ALSA Sequencer API for midi input, and OSS/ALSA and JACK for output. A GTK graphical interface is provided to take full advantage of the synth, as well as for managing presets, patches, and banks, etc.

Digits

  • Digits VSTi is here! Digits is a phase distortion synthesizer inspired by Casio's CZ series but takes that form of synthesis to the limit. Create warm pads, glitchy sounds, dirty basses, filthy sweeps, screaming leads, and anything in-between. The interface is minimal and designed to enable the user to create sounds from scratch in record time! And, if you're too busy for that, it comes with 51 lush presets that run the gamut from pads to stabs, leads and basses. Multi-platform VST

nekobee / Nekobi

  • nekobee - A softsynth recreation of a classic single-oscillator bass monosynth. DSSI.

Minaton

  • Minaton - LV2 plugin - A monophonic, subtractive, beefy analogue style bass and lead synth.

triceratops

WhySynth

  • WhySynth - a versatile softsynth which operates as a plugin for the DSSI Soft Synth Interface. A brief list of features: 4 oscillators, 2 filters, 3 LFOs, and 5 envelope generators per voice. 11 oscillator modes: minBLEP, wavecycle, chorused wavecycle, asynchronous granular, three FM modes, waveshaper, noise, PADsynth, and phase distortion. 10 filter modes. flexible modulation and mixdown options, plus effects.

Wolpertinger

  • Wolpertinger - an realtime opensource softsynth for linux, created by Johannes Kroll. From the ReadMe file: "Wolpertinger is a subtractive, antialiased software synthesizer. Sound is generated by a Saw/Rect/Triangle wave generator and then filtered through a bandpass filter whose center frequency "bounces" around the frequency of the playing notes."

6PM

  • 6PM - a phase modulation (PM) synthesizer made of six oscillators.

Add64

  • Add64 is an additive synthesizer. It is based on QT and uses the JACK Audio Connection Kit for platform independent audio/midi I/O. The GUI interface departs from the traditional knobs-and-buttons approach by using a spectral graph to permit the oscillators and related parameters to be modified.

DIN Is Noise

  • DIN (DIN Is Noise) - a software musical instrument, uses the computer mouse to pick both the pitch (by moving horizontally) and the volume (by moving vertically) of a sound from an on-screen keyboard that displays the notes of the current scale and a number of microtones in-between. Bezier curves, FM and AM and control other parameters like stereo gater patterns, Delay feedback & volume patterns and Compressor patterns. Users can also create an unlimited number of drones pitched on any microtone and edit them in real-time.

NoiseScaper

PHASEX

  • PHASEX ([P]hase [H]armonic [A]dvanced [S]ynthesis [EX]periment) - an experimental MIDI softsynth for Linux/ALSA/JACK with a synth engine built around flexible phase modulation and flexible oscillator/LFO sources. Modulations include AM, FM, offset PM, and wave select. PHASEX comes equipped with multiple filter types and modes, a stereo crossover delay and chorus with phaser, ADSR envelopes for both amplifier and filter, realtime audio input processing capabilities, and more. Inspirations come from a variety of analogue and early digital MIDI synthesizers from the '80s and '90s.

amsynth

  • amsynth - an analog modelling (a.k.a virtual analog) software synthesizer. It mimics the operation of early analog subtractive synthesizers with classic oscillator waveforms, envelopes, filter, modulation and effects. The aim is to make it easy to create and modify sounds.

Sineshaper

  • Sineshaper - A monophonic synth plugin that sends the sound from two sine oscillators through two sine waveshapers in series. You can control the vibrato, tremolo, portamento, the tuning of both oscillators, the oscillator mix, the shape amount (total and split over both shapers) and the phase of the second waveshaper function. There is also an ADSR envelope generator that can control the total shape amount and the amplification (with controllable sensitivity for both), an LFO for the total shape amount, distortion, and a feedback delay. The shape amount and amplification is velocity sensitive, and the synth supports MIDI pitch bend events (with a range of +/- 2 semitones). All parameters can be controlled using MIDI Controller events.

Mx44

  • Mx44 - a polyphonic multichannel midi realtime software synthesizer. It is written in C and hand optimized for the (Intel) MMX instruction set. It runs under Linux, using the JACK daemon and a kernel modified for realtime performance. The core algorithm is a 4 x 4 crossmodulating matrix (phase and amplitude) with individual envelopes for each oscillator. Oscillators have individual frequency intonation, can emphasize any of the eight first harmonics and even do some internal crossmodulation. Envelopes can be switched between VCA and a VCF-like mode. The sustainloop of the envelope can be brought into oscillation in the audible spectre as well as provide slow LFO sweeps. Also, key and velocity modifications of phase relationship.

Newtonator

OBXD

synthv1

  • synthv1 is an old-school 4-oscillator subtractive polyphonic synthesizer with stereo fx. pure stand-alone JACK client with JACK-session, NSM (Non Session management) and both JACK MIDI and ALSA MIDI input support, or LV2 instrument plugin

rt_lpc

  • rt_lpc - real-time LPC analysis + synthesis + visualization. rt_lpc is a light-weight application that performs real-time LPC analysis and synthesis.

SO-404 / SO-KL5 / SO-666

Horgand

  • Horgand is a JACK capable organ client with presets and some effects incorporated. It generates the sound in real time like a FM synthesizer. Due this, you can change the frecuency of all the drawars and add some special effects. It features auto-accompaniment, looped drums, and a bass line in a wave table way.

Oxe FM

  • Oxe FM Synth is an open source VST 2.4 instrument plugin for Windows, Linux and Mac OS X. Features: Multitimbral (16 MIDI channels); 8 operators (6 oscillators, 1 noise generator/limiter, 1 filter), all with envelope; 1 LFO per channel; frequency modulation half-matrix with self-modulation; global reverb and delay; great general performance in low resources systems; a lot of good quality patches included

Peggy 2000

  • Peggy 2000 - subtractive synth with step sequencer made with juce

Vex

  • Vex - a 3-oscillator subtractive synthesizer that provides a series of sampled waves for intial tones. It can be run standalone through jalv.gtk or a plug-in manager like Carla.

Each of the 3 oscillators has the same modifiable parameters, such as octave detune, fine detune, phase adjustment and tuning. The filter section has a traditional ADSR layout, and low-pass and high-pass filter options. Discrete amplitude and LFO sections are provided, as well as independent effects controls. Chorus, reverb and delay are included in the effects section.

Xsynth

  • Xsynth-DSSI plugin, a classic-analog (VCOs-VCF-VCA) style software synthesizer with an editor GUI. Xsynth-DSSI was written by Sean Bolton, and was based on Steve Brooke's Xsynth code, but has since aquired polyphonic operation, band-limited oscillators, a better filter mode, and velocity-sensitive envelopes.

RTSynth

  • RTSynth - a midi event triggered real time software synthesizer entirely based on physics and mathematics.

Goal of the software is to reproduce sounds of strings, organs, flutes and drums in real time. The sound generation is based on the physics of the instruments. That means all sounds created by this software are the result of a mathematical model based on some physics about how the sounds shape varies in time. You have access to most of the models parameters through a graphical interface. Further more most of the parameters can be controlled by MIDI controllers.

Wsynth

  • Wsynth-DSSI is a simple wavetable synth. It is not based on any "real life" synth, but was written with the PPG Wave and Prophet VS in mind. The code is based on Xsynth-DSSI, hence the imaginative name.

slat

  • slat - This is my soft-theremin. It was called "theremin", but now it's called "slat". Calling it theremin was a bit silly. Playing it is very simple, move the mouse pointer up and down to change pitch, left and right to change volume. Notes are printed on either side to make it easier to play.



DX-10 / JX-10

VOPM

  • VOPM - Virtual fm synthsizer,like OPM

Ported to linux by the Jucetice Team at Anticore.org

WatSyn

  • Wat Syn is a 4-oscillator, modulatable wavetable synthesizer, another powerful instrument included in the Linux MultiMedia Studio (LMMS) Digital Audio Workstation

TAL Noisemaker

  • TAL-NoiseMaker is an improved version of TAL-Elek7ro and has a completely new synth engine and a lot of improvements in sound and usability. The synth also includes a small effect section with a reverb, chorus and a simple bit crusher effect.

A display shows the knob and slider values. This allows more control over the synth. A ringmodulator and a syncable triangle are also part of this synth. TAL-NoiseMaker includes new filter types as the self resonating 6dB low pass and a notch filter. Its improved amplitude ADSR is very suitable for slow pads as for really fast envelopes. 128 factory presets included, 80 made by Frank "Xenox" Neumann / Particular - Sound.

distrho linux port available

Minicomputer

  • Minicomputer is a standalone Linux software synthesizer for creating experimental electronic sounds as its often used in but not limited to Industrial music, IDM, EBM, Glitch, sound design and minimal electronic. It is monophonic but can produce up to 8 different sounds at the same time. It uses Jack as real time audio infrastructure and can be controlled via Midi.

Tunefish

  • Tunefish is a very tiny virtual analog synthesizer. It is developed to fit into about 10kb of compressed machine code while still producing an audio quality that can compete with commercial synthesizers. This site was created to make the VST/AU version of it available to the public. This plugin, unlike the version of TF which is used in 64k intros of our group Brain Control is of course larger, mainly because it has a UI and uses the excellent Juce framework for C++. (This is true for v4. v3 uses Qt and v2 uses the VSTGUI library.)

Universal VST.

Mr. Alias 2

  • Mr. Alias 2 uses non-bandlimited oscillators which can be transposed near to and beyond the Nyquist frequency, causing most of their spectra to be aliased back into audible non-harmonic frequencies. The sound can then be further processed by a number of crude "effects."

Universal VST, Mac AU.

Harsh Digital Nose

  • Harsh Digital Nose a synthesizer that converts two images into two oscillator waveforms and then mixes them in various horrible ways. You can drag and drop images or draw them on the plugin in real time.

Windows/Mac VST, Mac AU.

Digits

Virtual ANS

  • Virtual ANS is a software simulator of the unique Russian synthesizer ANS - photoelectronic microtonal/spectral musical instrument created by Russian engineer Evgeny Murzin from 1938 to 1958. Murzin named his invention in honour of the composer Alexander Nikolayevich Scriabin. The instrument was used by Stanislav Kreichi, Alfred Schnittke, Edison Denisov, Sofia Gubaidulina, Edward Artemiev and other Soviet composers. You can hear the sound of the ANS in Andrei Tarkovsky's movies Solaris, The Mirror, Stalker. In 2004, the British experimental group Coil released CoilANS, a boxed set of experimental drone music performed on the ANS.

reSID

  • reMID - a MIDI interface to reSID
  • https://github.com/ssj71/reMID.lv2 - This is a MIDI implementation of a MOS8580 6581 SID chip using the reSID library. It includes support for scripted instruments that allow complex sonic control of the chip.

Dream 64


Rave Generator VST

  • Rave Generator VST - a free rompler VST synth, containing many of the classic sounds of the early rave / hardcore from the 90′s.

Happychords

  • https://github.com/milasudril/happychords - a software synthesizer for producing hooks like the one found in "Rosa Hellikopter" and other fast-paced dance tracks. It can also produce rock organ sounds or sweeping pads.

Qin

  • Qin - an LV2 plugin for synthesizing plucking and striking sounds. The basic architecture is two oscillators feeding into a highpass filter followed by a lowpass filter. Unique to this synth are the envelopes which are designed to better mimic physical plucking and striking sounds.

lv2_guitar

CT-Synth

  • CT-Synth - GUI toolkit for the Linux desktop and for Android tablets, running Android 4.4 or higher. Included is a demo project, a synthesizer.

Psychosynth

  • Psychosynth project aims to create an interactive modular soft-synth inspired by the ideas of the Reactable. We will try to provide a clean object oriented API to allow the creation of new innovative interfaces for the synthetizer and a 3D simulator of a Reactable-alike device with support for collaborative music creation over the internet. Our main goal is to create a free software alternative to allow newbies, developers and professionals explore new ways of making music.

GuitarSynth

  • https://github.com/geraldmwangi/GuitarSynth-DPF - a set of wavetable synths controlled by a monophonic pitchdetector. Actually it is not specific to guitars but can be used for any harmonic instrument when playing single notes. This is a small petproject of mine to explore the possibilities of pitchdetection for Guitars. It uses aubio for pitch detection, but that will change as I want to write my own detector.

bytes

reasonablesynth.lv2

fastbreeder

  • fastbreeder - An experimental genetic programming synthesiser. This program is free software, developed for linux, using jack for audio. Fastbreeder is essentially a 4 button synth. The idea is to grow code by choosing from a range of automatically generated variations of functions, you don't have to know how they work, but each function creates a sound which can be selected by you. The following generation is then created containing mutants of your chosen sound. You can refine and develop the sound just by auditioning and choosing the best one each time.


munt

  • munt - A multi-platform software synthesiser emulating (currently inaccurately) pre-GM MIDI devices such as the Roland MT-32, CM-32L, CM-64 and LAPC-I. In no way endorsed by or affiliated with Roland Corp.

andes

  • Andes - a software synthesiser plugin in early stages of development. The core of Andes is an original oscillator which uses a pseudo-3D version of Perlin noise to produce distinctively digital sound.

Chiptune

ftz Chiptune

Organ

Aeolus

  • Aeolus is a synthesised (i.e. not sampled) pipe organ emulator that should be good enough to make an organist enjoy playing it. It is a software synthesiser optimised for this job, with possibly hundreds of controls for each stop, that enable the user to "voice" his instrument. First presented at the 2nd LAD conference in Karlsruhe, end of April 2004.

GENPO

  • GENPO - the GENeral Purpose Organ. It replicates the essential features of any pipe, theatre, or reed organ. GENPO reads a description of an organ (a .org XML file) and presents a suitable user interface for operating that organ. There are a number of high quality organ SoundFonts freely available and the .org file maps the stop sounds to organ divisions, manuals and stops. Other facilities such and couplers and presets are available. You may connect one or more MIDI keyboards to GENPO to provide the organ manuals, you can also assign one to be the 'pedalboard'.

jOrgan

  • jOrgan is a Java-based MIDI-Processor. It's open architecture allows for complex transmitting and dynamical modifying of MIDI-Messages on their way between MIDI-Encoders and MIDI-Decoders, through an own MIDI Programming Language MPL.

Beatrix

  • Beatrix is a MIDI-controlled, software synthesizer designed to imitate the sound and properties of the electromechanical organs and sound modification devices that brought world-wide fame to the names and products of Laurens Hammond and Don Leslie.

setBfree

  • setBfree - A DSP Tonewheel Organ emulator. setBfree is a MIDI-controlled, software synthesizer designed to imitate the sound and properties of the electromechanical organs and sound modification devices that brought world-wide fame to the names and products of Laurens Hammond and Don Leslie.

GrandOrgue

  • GrandOrgue is a sample based pipe organ simulator. When connected to MIDI keyboards and an audio system, it can accurately simulate the sound of a real pipe organ. This application has builds for Linux, Windows and OS X.

Foo YC20

  • Foo YC20 - This is a Faust implementation of a 1969 designed Yamaha combo organ, the YC-20. In addition to the Faust code, it has a Gtkmm UI with Jack audio and midi support. A LV2 instrument plugin is planned but not yet executed.

AZR-3 JACK

  • AZR-3 JACK - a port of the free VST plugin AZR-3. It is a tonewheel organ with drawbars, distortion and rotating speakers. The original was written by Rumpelrausch Täips. The organ has three sections, two polyphonic with 9 drawbars each and one monophonic bass section with 5 drawbars. The two polyphonic sections respond to events on MIDI channel 1 and 2, and an optional keyboard split function makes the bass section listen to the lower keys on channel 1. The three sections have separate sustain and percussion switches as well as separate volume controls, and the two polyphonic sections have separate vibrato settings. All three sections are mixed and sent through the distortion effect and the rotating speakers simulator, where the modulation wheel can be used to switch between fast and slow rotation, and the fast and slow rotation speeds themselves can be changed separately for the lower and upper frequencies.

Windows VST

Synth1

  • http://synth1.com/ a software synthesizer for computer music use. It is VSTi/AU compatible. (AU version is beta now) The current version is freeware. Functionally it is modelled on the Clavia Nord Lead 2Red Synth ; with the following characteristics: 2 Oscillators + 1 sub Oscillator, FM modulation, ring modulation,sync,modulation envelope; 4 types of filters, distortion; 2LFO(synchronized with host); Arpeggiator (synchronized with host)

Tempo delay (synchronized with host), stereo chorus/flanger; Legato mode, portamento; 32 notes polyphony; 128 presets; Thoroughly optimized for light CPU load using SSE instructions etc.; Automation

Bleep

  • Bleep - a free VSTi synthesizer plug-in for Windows which inspired by the sound of MOS Technology SID. At the same time Bleep' is not emulator of this chipset but only partially similar to its architecture.

u-he

  • Zebralette - has two LFOs (one per voice, one global), a multi-stage envelope and three on-board effects (chorus, EQ, delay). Not forgetting Zebra2's famous dual spectral effects, which include several squelchy filter algorithms. Windows/Mac.
  • Podolski - a simple, CPU-efficient virtual analogue synthesizer. Basically a cut down version of FilterscapeVA with just one oscillator, one filter, one envelope and two LFOs, it also features a Zebra-style arpeggiator/sequencer plus chorus and delay effects. Podolski's specialities are the Click parameter (emphasizes the filter attack) and its ability to seamlessly morph between three waveforms (WaveWarp). Windows/Mac.

u-he Hive

  • Hive was made to be fast and simple. The streamlined single screen UI lets you dive into sound creation immediately. A fluid workflow invites you to tweak away until your sound is just right (or wrong in just the right way). Hive was engineered to be light on CPU, and won’t slow you down while you work. But being “fast and simple” doesn’t mean we’ve sacrificed sound quality or creative control - Hive is packed with features, controls and enough flexibility to deliver stunning sounds. Windows/Mac.

u-he Triple Cheese

  • Triple Cheese is a unique-sounding freeware synthesizer plugin. Triple Cheese doesn't use any of the classic synthesis techniques – substractive, FM or additive – but various forms of comb filter i.e. very short chromatically tuned delays. The three cheese modules in a row either generate their own signal, or process the output of the previous module. Windows/Mac.

deputy Mark II

Charlatan

  • Charlatan is a polyphonic, subtractive virtual analog (VA) synthesizer plugin with focus on sound quality and easy usability. It comes with a flexible, yet not overwhelming feature set which encourages artists to start tweaking instead of just relying on presets. Inspite of it's simplicity, Charlatan's architecture is flexible enough to create both classic sounds and rather experimental noises. While making no compromise about sound quality, the sound engine has been highly optimized for efficient CPU usage making Charlatan well suited as a "bread and butter" synth even in projects with a large number of plugin instances. Windows VST.

Synister

  • Synister is a substractive software synthesizer made by students of the TU Berlin. Downloads include a standalone version (PC/Mac) and VST2 Plugins (Windows 32/64bit) (OSX 64bit) for use in Digital Audio Workstations (DAWs). Synister has been tested on the following DAWs: Logic, Ableton Live, Cubase and Maschine and on Windows 7, 8, 10 and OSX El Captain. linux

Venom VB-303

  • Venom VB-303 is a win32 VST made with SynthEdit/SE_SDK2. It’s an approximation of the sound of a x0xb0x, and the sequencer of the TB-303.

Windows VST.

Caustic 3

  • Caustic 3 is a music creation tool suite inspired by rack-mount synthesizers / samplers rigs. Everything is real-time and optimized for mobile devices. Windows VST.

metamorph

  • metamorph - a waveform morphing synth with a bunch of envelopes, LFOs and onboard effects to guarantee movement on even the most vanilla note. Each oscillator can morph through a selection of waveforms in tempo sync or modulated by an envelope. It can also step through the waveforms, make each cycle a new waveform or even just stick with one waveform if you want. Throw in pitch modulation, 5 envelopes, 2 LFO’s, a ring mod / 3rd audio osc, variable state filter, distortion, delay and an arpeggiator and that held note will never sound the same again

GalaXynth

  • GalaXynth - a Workstation Synth from the future. With this baby, you’re done fiddling with neverending rows of knobs. Find the sound you need ASAP, stop messing around, start making music.

Scylla

  • Scylla - a 32 bit Windows VST instrument capable of sample-playback combined with subtractive synthesis to produce a wide variety of sonic possibilities ranging from lush pads to far-out soundscapes and effects via scorching leads and chunky bass. Scylla includes three different types of oscillators that can be modified to a wide variety of styles and three built-in samplers that can accommodate .wav audio samples, which can be played back in grain table, waveform, sample or single hit format. All the audio can be modified and modulated through LFO, volume and filter envelopes, Ring-Modulation, and Unison.

Oatmeal

  • Oatmeal - a two-oscillator subtractive synth.

X11

Harmony Box

basic65

  • basic 65 - a monophonic synth, inspired by the classic 80s home computer, the Commodore 64 and its legendary SID chip. Building on the waveforms and signal path of this famous chip, basic 65 adds further features and options to take things a step further. The double arpeggiator allows complex versions of that retro 8-bit game sound and the modulation options inspire experimentation via the mod envelope and 2 comprehensive LFOs. Pulse width modulation, ring modulation and oscillator detune/sync are key ingredients in the signature sound. Throw in some pitch drift, bit drift, a sprinkle of dirt and randomisation and you have a wide range of lofi, chiptune, retro-tastic sounds at your disposal.

Preparation P

  • Preparation P - a VSTi collection of 61 high quality prepared piano samples. All of these samples were recorded by Tom Gersic on a baby-grand piano, and include a variety of strummed strings, plucked strings, and many other sounds of various objects lodged in the strings. Each sample can be tuned individually, and you can also adjust the attack, decay, sustain, and release characteristics of the sound by using the envelope controls.

SmallQoo

ProtoPSG psg-005

NoteGraphica

blooo

  • blooo - a VST 2.4 polyphonic software synthesizer plug-in for Microsoft Windows® (both 32 and 64 bit) based on the classic subtractive synthesis architecture. It is written in native C++ code for high performance even on "lighter" systems.

Tempo sync.

scrooo

  • scrooo - a VST 2.4 polyphonic software synthesizer plug-in for Microsoft Windows® (both 32 and 64 bit) based on a spectral formant synthesis architecture and written in native C++ code for high performance.

Tempo sync.

qyooo

  • qyooo - a VST 2.4 polyphonic software synthesizer plug-in for Microsoft Windows® (both 32 and 64 bit). It is written in native C++ code for high performance and low CPU consumption.

Ragnarök

  • Ragnarök - a VST 2.4 software instrument for Microsoft Windows® simulating a custom-built one-of-a-kind analog synthesizer from 1980. It is written in native C++ code for high performance and low CPU consumption.

Nabla

  • Nabla - a VST 2.4 software instrument for Microsoft Windows® simulating the KORG Delta DL-50 Strings Synthesizer from 1979. Is is written in native C++ code for high performance and low CPU consumption.

Deputy

  • deputy Mark II - a VST 2.4 software instrument for Microsoft Windows® (both 32 and 64 bit) in the tradition of classic string machines and early "polyphonic" synthesizers, written in native C++ code for high performance.

Kern

  • Kern - a VST 2.4 polyphonic software synthesizer plug-in for Microsoft Windows® (both 32 and 64 bit) designed to run with and to be fully controlled by modern MIDI keyboard controllers like the Novation® Impulse™. It is written in native C++ code for high performance and extremely low CPU consumption.

Mono/Fury

  • Mono/Fury - a VST 2.4 software synthesizer plug-in for Microsoft Windows® (both 32 and 64 bit) emulating the classic KORG Mono/Poly® analog synthesizer of the early 1980's. It is written in native C++ code for high performance even on "lighter" systems.

Formant Classic Advanced

  • Formant Classic Advanced - an extended Donation Ware version of the "Formant Classic" Free Ware version based on the legendary Elektor Formant DIY (Do It Your self) synthesizer of 1977/78 . It is available as a standalone version and VSTi plugin version for Microsoft based computers.

TS-Substance

  • Substance - a virtual analog software synthesizer (VSTi) emphasizing simplicity, flexibility, and sound quality. The key factors in the design of Substance were that it should sound great, without effects, and that it should all fit on one page.

TW-PitchShop

  • TW-PitchShop - Versatile Mono/Poly Synth with portamento. Loads of controls to create (or adjust) sounds, divided over different screens. Easy to use interface, very understandable for beginners and experts. Interface ±840 pixels wide, height about 440 pixels.

TW-WhiteWidow

  • TW-WhiteWidow - Versatile Mono/Poly Synth with portamento. Loads of controls to create (or adjust) sounds, divided over different screens. Easy to use interface, very understandable for beginners and experts. Interface 810 pixels wide, height 619 pixels. Patchbank with 128 sounds.

TW-PVM Special

  • http://www.technowitch.nl/vst-pvmspecial.html TW-PVM Special] - Versatile Mono/Poly Synth with Noise Oscilator. Loads of controls to create (or adjust) sounds, divided over different screens. Easy to use interface, very understandable for beginners and experts. Interface 722 pixels wide, height 343 pixels. Patchbank with 64 sounds.

Eclipsis

  • Eclipsis - full featured hybrid wavetable synthesizer with 3 oscillators, 6 LFOs, 118 waveshapes, 39 modulation targets, 2 effects racks and unique preset randomization! And all of that in new attractive design!

U.F.O. ZE

  • U.F.O. Zone Edition - (VSTi) is upgraded version of original U.F.O. plugin with some updates, improvements and fixes. It is a subtractive synthesizer with three oscillators and some preset randomization function.

Charlatan

  • Charlatan - a polyphonic, subtractive virtual analog (VA) synthesizer plugin with focus on sound quality and easy usability. It comes with a flexible, yet not overwhelming feature set which encourages artists to start tweaking instead of just relying on presets. Inspite of it's simplicity, Charlatan's architecture is flexible enough to create both classic sounds and rather experimental noises. While making no compromise about sound quality, the sound engine has been highly optimized for efficient CPU usage making Charlatan well suited as a "bread and butter" synth even in projects with a large number of plugin instances.

The Viking

  • The Viking - uses additive synthesis to produce Dynamic Tonality tunings and timbres. Scale pitches result from successive additions and subtractions of a period (e.g., an octave) and a generator (e.g., a perfect fifth). The period and generator can be set to any size, making a wide variety of microtonal tunings easily accessible.

2032

  • 2032 - a Dynamic Tonality physical modeling (modal) synth. It emulates the sound of a pitched physical object (string, pipe, plate) mounted on an unpitched physical body (guitar body, djembe body, drum shell, etc.) that is excited by a hammer, breath, bow, or live audio input. It supports a wide range of microtonal tunings and the partials of its sounds can be retuned so as to match the underlying tuning, thereby minimizing sensory dissonance. It supports tunings produced by a period and a generator of any sizes (for standard Western tunings, the period is the octave and the generator is the perfect fifth).

Transformer

  • Transformer - a Dynamic Tonality analysis-resynthesis synth. It transforms an audio sample, or live audio, by separating it into pitched components (partials) and noise. The amplitudes and frequencies of the partials, and the balance between noise and pitch can then be dynamically adjusted. As with all Dynamic Tonality synths, it supports a wide range of microtonal tunings and the partials can be retuned to match the underlying tuning, thereby minimizing sensory dissonance. The tunings are produced by a period and a generator (for standard Western tunings, the period is the octave and the generator is the perfect fifth). The sizes of both can be freely adjusted to morph between many diverse tunings.

ODOsynths archive

Chip32

MetaSynth

WebSynths

See also WebDev#Web Audio API

Android

One Hand Synth

  • One Hand Synth - a musical instrument for tablets running Android 2.2 or higher. Choice from 2 sound sources: a Moog-like synthesizer and a Hammond-like organ. These can be played with one of 3 on-screen keyboards. Preset patches as well as manual controls.

SynprezFM

  • SynprezFM - a full-fledged Yamaha DX7 emulator for Android

Various


Modelled instruments


  • Spicy Guitar - a free physically modelled acoustic guitar synthesizer.

Sounds and samples

Creating

  • The Guide To Sound Effects - This page contains a number of ideas on how to create various sound effects, and we hope you find it inspiring. Thanks to everyone who submitted their tips and techniques – and if you have any ideas to share, do let us know!
  • FilmSound.org - Learning Space dedicated to the Art and Analyses of Film Sound Design

Info

  • WhoSampled is the world's largest community for fans of sampled music, cover songs and remixes. WhoSampled is open to everyone to submit information about a sample, cover song or remix, and subject to approval it will be added to the database, published across our platforms, to be discovered and discussed by the world.


Downloads



  • SampleSwap - Professional quality free loops and audio samples for electronic music


  • VoxForge was set up to collect transcribed speech for use with Free and Open Source Speech Recognition Engines (on Linux, Windows and Mac). We will make available all submitted audio files under the GPL license, and then 'compile' them into acoustic models for use with Open Source speech recognition engines such as CMU Sphinx, ISIP, Julius (github) and HTK (note: HTK has distribution restrictions).
  • SONUS is an online listening library (jukebox) of electroacoustic works, created and managed by the CEC for the benefit of the greater Electroacoustic / Computer Music / Sound Art community. The CEC created SONUS to make electroacoustic pieces easily accessible to audiences everywhere. SONUS is a valuable tool for composers to promote their work, and a fascinating resource for listeners, with over 1800 works in a wide variety of aesthetics already in the catalogue.
  • Musical Artifacts is a web application with the objective of helping musicians find, share and preserve the 'artifacts' that they use for producing their music. It also aims to be a de facto guideline of how to best preserve these artifacts so that they're are useful to the biggest number of people possible.
  • British Library Sounds - Listen to a selection from the British Library’s extensive collections of unique sound recordings, which come from all over the world and cover the entire range of recorded sound: music, drama and literature, oral history, wildlife and environmental sounds.
  • The Macaulay Library - the world's largest archive of animal sounds. The archive includes more than 175,000 audio recordings covering 75 percent of the world's bird species, with an ever increasing numbers of insect, fish, frog, and mammal recordings as well. The more recently established video archive includes over 50,000 clips representing over 3,500 species.
  • SoundKit is a UI sound library designed for all of your interface needs. Featuring 300 professional, royalty free sound effects, designed for use in mobile and desktop app design. Each sound has been custom crafted for UI applications. Designed to sound great on mobile devices as well as high end speakers. [55]


  • Freepats is a project to create a free and open set of instrument patches, in any format, that can be used with softsynths. We would like to collect and host samples and instrument patches in any format so if you are interested in contributing to the project then send a message to the freepats mailing list. Needless to say, any uploaded content must either be in the Public Domain or have an open and free redistribution license.


  • TrekCore: Audio - Welcome to the best resource for iconic Star Trek sounds!
  • Pop Up Archive makes sound searchable using cutting edge speech-to-text technology.


8 http://sleeptalkinman.blogspot.co.uk/


few of my favourite

  • crumpling silver papers
  • bad tube track (in summer evening)
  • water (at night)
  • Flogsta scream
  • iceflow cracking
  • steel line against mast/loose cable in tall lamp

Stems

Historical

Sampler

LinuxSampler

  • LinuxSampler was designed very modular, especially (and in contrast to other samplers) it was decoupled from any user interface. LinuxSampler itself usually runs as own process in the background of the computer and usually does not show up anything on the screen, or at most it can be launched to show status informations and debug messages in a console window.
  • Qsampler is a LinuxSampler GUI front-end application written in C++ around the Qt framework using Qt Designer. At the moment it just wraps as a client reference interface for the LinuxSampler Control Protocol (LSCP).
  • JSampler is an opensource, platform-independent, GUI front-end for LinuxSampler, written entirely in Java. The main goal of the JSampler's design is to be extensible and more flexible regarding the integration of different GUI implementations. JSampler consists of two parts: JSampler core - handles the LSCP command processing and event notifications, sent by LinuxSampler, and provides convenient data models and controllers to be used instead. The core also provides the necessary interfaces that should be implemented by all JSamler views. JSampler view - an extension to the JSampler core, which provides the user interface part of JSampler.

https://launchpad.net/ubuntu/+source/fluid-soundfont

Specimen

  • Specimen is an open source, MIDI controllable audio sampler for Linux. Features include: Up to 64 patches with 8 notes of polyphony each, Fast, high quality pitch scaling, Linear ADSR volume envelopes, MIDI/jack-transport syncable LFOs, Low pass filter with resonance, A variety of direction-independent playback modes, A zoomable sample editor for loop and play points, Portamento

Petri-Foo

petri-foo -a
  # autoconnect to system output in JACK

samplv1

  • samplv1 is an old-school all-digital polyphonic sampler synthesizer with stereo fx. pure stand-alone JACK client with JACK-session, NSM and both JACK MIDI and ALSA MIDI input support, or LV2 instrument plugin.

drumkv1

drmr

  • DrMr - LV2 sampler plugin. It's main reason to exist is to give a way for lv2 hosts to have a built in drum synth that can save its entire state (i.e. no need to go out to external tools and no need to save extra state). See the wiki (click the wiki tab above) for some screenshots.

Fabla

  • Fabla is an open-source LV2 drum sampler plugin instrument. It is ideal for loading up your favorite sampled sounds and bashing away on a MIDI controller. Or if it’s crafty beat programming your after that’s cool too! The ADSR envelope allows the shaping of hi-hats and kicks while the compressor beefs up the sound for those thumping kicks!
  • Fabla2 is an advanced sampler with multiple layers, banks, pads, integrated FX and routing. Current status: alpha testing – please be patient.


Tapeutape

  • Tapeutape is a midi-controlled virtual sampler. It is highly configurable, lets you create instruments/kits/setups and is designed for live performance. It works on Gnu/Linux with the Jack sound server. There's a command-line and a gui version. It is released under the GNU General Public Licence.

Simsam

  • Simsam - a simple MIDI sample playback program. You can use it to play drum samples and loops from a MIDI keyboard or sequencer.

Composite Sampler

  • Composite Sampler - an LV2 plugin that acts as a MIDI-controllable sampler. It is best suited for drum samples, and supports Hydrogen drum kits.

aucat

Chionic

Anja

  • Anja - a sample player designed for live sound effect playback. Anja makes it possible to assign sound effects to the keys of the computer keyboard. Anja also featues a channel mixer with 16 channels, making it possible to fade a group of sound effects together. The backend of Anja is JACK, the low-latency audio server. The session file format of Anja is in a formalized text format, optimized for human readability.

jacksampler

  • jacksampler - a sampler which supports midi input using JACK, and outputs the audio data using JACK. It is configured using a simple text file which describes which audio file corresponds to which MIDI note.

jass

Dirt


Shortcircuit

  • Shortcircuit was created as a reaction against the ongoing trend where software samplers are being designed with the primary intent of library playback. It is intended for people who, like us, consider a sampler to be a musical instrument in its own right, and not just a way to emulate other instruments. It has been a very high priority to make sure that adding and editing individual samples is as fast and logical as possible.

The sample hierarchy in shortcircuit allow you to place samples directly at the highest level of the multi, without having to deal with instrument hierarchies and patches. Want to add a sample to your song? Just drag & drop the sample into shortcircuit and you're ready to go. Samples can be put in groups for multi-sampling and kit-building, but the complexity is only there when you need it.

Windows VST

Soundfonts

a mess

  • https://en.wikipedia.org/wiki/SoundFont - a brand name that collectively refers to a file format and associated technology that uses sample-based synthesis to play MIDI files. It was first used on the Sound Blaster AWE32 sound card for its General MIDI support.

MIDI files in themselves don't contain any sounds, rather they contain only instructions to render them. To render such files, sample-based MIDI synthesizers use recordings of instruments and sounds stored in a file or ROM chip. SoundFont-compatible synthesizers allow users to use SoundFont banks with custom samples to render their music. A SoundFont bank contains base samples in PCM format (similar to WAV files) that are mapped to sections on a musical keyboard. A SoundFont bank also contains other music synthesis parameters such as loops, vibrato effect, and velocity-sensitive volume changing. SoundFont banks can conform to standard sound sets such as General MIDI, or use other wholly custom sound-set definitions.

The original SoundFont file format was developed in the early 1990s by E-mu Systems and Creative Labs. A specification for this version was never released to the public. The first and only major device to utilize this version was Creative's Sound Blaster AWE32 in 1994. Files in this format conventionally have the file extension of .SBK or .SB2.

Formats

SF2

SoundFont 2.0 was developed in 1996. This file format generalized the data representation using perceptually additive real world units, redefined some of the instrument layering features within the format, added true stereo sample support and removed some obscure features of the first version whose behavior was difficult to specify. This version was fully disclosed as a public specification, with the goal of making the SoundFont format an industry standard. Files in this and all other 2.x formats conventionally have the file extension of SF2.

  • Polyphone is a free software for editing soundfonts in format sf2. These files contain a multitude of audio samples put together and configured so as to form musical instruments that can be used by synthesizers such as fluidsynth and played using a MIDI keyboard.
  • hydro2sf2 - convert hydrogen drumkit into sf2 soundfont

SFZ

Comes in SFZ 1.0 and SFZ 2.0 varieties.

  • makesfz - BASH script to auto-generate SFZ files. Requires BASH v4. Running makesfz with no arguments creates individual SFZ files for every WAV file found in the current directory, with the key range spanning the entire keyboard and "pitch_keycenter" set to MIDI key C4 (middle C).
  • sfarkxtc - sfArk extractor, console version. Converts soundfonts in the legacy sfArk v2 file format to sf2.

DLS

NKI

  • nkitool is a simple console application which exports and imports the human readable XML file from and to Native Instruments Kontakt .nki instrument articulation files. So far, Kontakt v1 to v4 format versions are supported by this tool. nkitool is released in binary and source code format in the public domain.

H2Drumkit

Giga

Self-contained

x42 AVL Drumkits

  • http://x42-plugins.com/x42/x42-avldrums - avldrums.lv2 is a drum sample player plugin dedicated to Glen MacArthur's AVLdrums. This self-contained plugin provides a convenient way to rapidly sequence and mix midi-drums.

DSK Music Box

gmsynth.lv2


Players

FluidSynth

  • FluidSynth - A real-time software synthesizer based on the SoundFont 2 specifications. It can be used for live audio synthesis of MIDI events or for rendering MIDI files to disk, using SoundFont instruments. It can also be embedded in other applications. This is not a application with a graphical user interface, however there are several GUI applications which utilize FluidSynth.


  • Qsynth Qt GUI Interface for FluidSynth


  • EMAP (Easy Midi Audio Production) is a graphical user interface for the fluidsynth soundfont synthesizer. It functions as a Jack compatible 1) stand alone application (gtkmm) or 2) an lv2-plugin (gtk2 or gtk3) that can be used inside any lv2 host such as ardour and qtractor. EMAP is meant to be a simple alternative to the popular qsynth UI and puts a majority of the control of the fluidsynth into the hands of the connected midi device. It is especially useful for working with a large collection of soundfonts.

sforzando

  • sforzando is a free, highly SFZ 2.0 compliant sample player. Advanced sample hobbyists now have a powerful tool to experiment and share instruments without relying on proprietary formats. sforzando has only one instrument slot; no fancy UI, effects or mixers. Every tweak has to be done at the SFZ file level, no cheating!sforzando is also a name given for a sudden change in music dynamics which, in musical notation, is represented by the “sfz” symbol.

Konfyt

  • Konfyt - a digital keyboard workstation for Linux which allows the user to easily and quickly set up patches, each with multiple layers, and instantly switch between these patches for seamless live keyboard playing. Patches may consist of multiple layers of Soundfonts (.sf2), SFZs, audio input ports and MIDI output ports. Konfyt features a searchable library that scans the filesystem for soundfonts and SFZs. Soundfont programs are included in searches and can be viewed with a single click, giving immediate access to all programs within a soundfont.

calfbox

  • calfbox - command-line jack app and python module to load SF2 and GIG files. lisalo[Qt] and laborejo use it [57]

SFZero

Editing

Project SWAMI

  • Project SWAMI - Sampled Waveforms And Musical Instruments, is a collection of free software for editing, managing and playing musical instruments for MIDI music composition. Current focus is primarily the SoundFont format, which is an open file format for digital audio “sample” based instruments. Swami – Instrument editor application, libInstPatch Instrument file software library, PatchesDB – Web interface for instrument sharing sites. Uses FluidSynth, a SoundFont based software synthesizer, which works with most any sound interface.

synthclone

  • synthclone is a tool that allows you to create sample-based instruments. You can create sample-based instruments by sending MIDI messages to your MIDI-capable gear or software that instructs an instrument to emit sounds for a series of notes, velocities, controls, and aftertouch values, or by recording your own samples. After the sampling is done, you can apply effects to your samples, and finally save this data as a sample-based instrument that can be loaded by sampler software.

Distributed with plugins that support the JACK Audio Connection Kit (with JACK Session support), PortAudio and PortMidi, trimming of samples, reversing samples, LV2 effects, the creation of Hydrogen, SFZ, and Renoise instruments, automated zone generation, and loading samples from your local filesystem!

Non-linux/free

  • SynthFont is a commercial program for editing and playing midi files using various sound source files like SoundFonts, GigaSampler files, SFZ files and more. VST instruments can also be used instead of a sound source file. A midi file is different from - for instance - a MP3 file in that the file does not contain any audio data. The file is a collection of notes and instructions for how to play them. SynthFont combines this data with the audio data in a SoundFont to produce ("render") an audio version of the song. - $
  • SyFonOne is a tool for playing midi in real time from a midi input port. Connect SyFonOne to your keyboard port or to a virtual midi relay port like loopMIDI by Tobias Erichsen (tested on Windows 10) (other alternatives are: MIDI Yoke and LoopBe1).


  • Zampler VST/AU sample Workstation for Windows and OS X that can compete in terms of sound and equipment loosely with the major operators. Besides REX loop and SFZ-enabled Sample oscillators offering Zampler // RX a sound modeling at its best: the integrated multimode filter types lowpass, highpass, bandpass and bandstop and various combinations thereof are to choose from. And three LFOs, three ADSR envelopes and a complex modulation matrix Liven up the sounds. Of functions through an extensive effects section, in the tube saturation, two equalizer, phaser, chorus, delay and reverb.

Downloads

to sort into the above formats






  • GeneralUser GS is a GM and GS compatible SoundFont bank for composing or playing MIDI files. There are currently versions for use with FluidSynth (or Qsynth), MuseScore, Sound Blaster Live!/Audigy/X-fi sound cards, and other SoundFont-compatible hardware and software synthesizers. For owners of Sound Blaster audio cards, GeneralUser GS can greatly enhance the sound quality of GM/GS compatible MIDI files when loaded into the sound card's RAM. Compared with the default SoundFonts that Creative Labs ships with their sound cards, the instrument sounds in GeneralUser GS are far more realistic.



  • Virtual Playing Orchestra - a free, sfz format, sample library that attempts to emulate multiple articulations of the solo and section instruments from a full orchestra using the best samples from Sonatina Symphonic Orchestra, No Budget Orchestra, VSCO2 Community Edition, University of Iowa, Philharmonia Orchestra and extra samples from Mattias Westlund, author of Sonatina Symphonic Orchestra.
  • Sonatina Symphonic Orchestra - a free orchestral sample library. While not as advanced or ambitious in scope as commercial offerings, SSO contains all the basic building blocks for creating real virtual orchestrations. It's primarily aimed at beginners, but also more experienced composers looking for something lightweight and/or portable might find it useful.
  • PersonalCopy soundfonts


  • Orchardoo.com Soundfonts - Each link points to a zip archive file which contains an SF2 font, a midi file to demonstrate the font and details about the file.
  • Purgatorycreek Soundware - Kronos Sounds - EXs40 - EXS41 - EXs42, Lars Pipe Organ Collection, Jensen Guitar Collection, Acoustic Piano Collection, Famous Synth Sounds, Flame Studio Guitars/Basses, Reeds, Tapes, Transistors, Sonatina Strings, Prophet 5 Emulation


  • Gump Audio Samples - Yamaha CS15, The Open Source Drum Kit, The Real Snare Drum, Drum Sounds of the Sixties, Swing Jazz Drums, The Early Years
  • Big Mono - drums, 254 sample .wav files, maps for Kontakt, Battery and EXS24
  • DrumCircle is a sample library for Kontakt that features 2 (free edition) drummers


Spatial audio

Stereo

  • https://en.wikipedia.org/wiki/Stereophonic_sound - or, more commonly, stereo, is a method of sound reproduction that creates an illusion of multi-directional audible perspective. This is usually achieved by using two or more independent audio channels through a configuration of two or more loudspeakers (or stereo headphones) in such a way as to create the impression of sound heard from various directions, as in natural hearing. Thus the term "stereophonic" applies to so-called "quadraphonic" and "surround-sound" systems as well as the more common two-channel, two-speaker systems. It is often contrasted with monophonic, or "mono" sound, where audio is heard as coming from one position, often centered in the sound field (analogous to a visual field). In the 2000s, stereo sound is common in entertainment systems such as broadcast radio and TV, recorded music and the cinema.



  • https://en.wikipedia.org/wiki/Crossfeed - the process of blending the left and right channels of a stereo audio recording. It is generally used to reduce the extreme channel separation often featured in early stereo recordings (e.g., where instruments are panned entirely on one side or the other), or to make audio played through headphones sound more natural, as when listening to a pair of external speakers.
  • https://github.com/LnxPrgr3/crossfeed [58] Headphones have extreme stereo separation--the right ear doesn't get to hear much of what's going on on the left. This leads to the impression the music's coming from inside your head, and sounds especially weird when instruments are panned hard to one side or the other. Crossfeed filters aim to fix this by letting the channels mix a little, but in a controlled way. The goal is to mimic what happens naturally when listening to music on speakers.


  • https://en.wikipedia.org/wiki/Leslie_speaker - a combined amplifier and two-way loudspeaker that projects the signal from an electric or electronic instrument, while modifying the sound by rotating the loudspeakers. It is most commonly associated with the Hammond organ, though it was later used for the guitar and other instruments. A typical Leslie speaker contains an amplifier, and a treble and bass speaker—though specific components depend upon the model. A musician controls the Leslie speaker by either an external switch or pedal that alternates between a slow and fast speed setting, known as "chorale" and "tremolo".


  • BLS1 is a digital realisation of the 'Blumlein Shuffler', invented by Alan Blumlen in the early 1930s and analysed in detail by Michael Gerzon in a paper presented at the 1993 AES Convention in San Francisco.


  • MONSTR - a multiband stereo imaging plugin, available for Windows, Mac, and Linux. It allows the user to control the stereo width of a sound in 3 different frequency bands, and so can be used to perform common tasks such as narrowing the bass frequencies while adding width to the highs, allowing fine control over the stereo image of your mix.


  • https://www.meldaproduction.com/MStereoExpander - offers expansion based on either actual samples or on delay, and provides stereo field correction to increase or reduce the clarity of the spatial differences between channels. It is fully mono-compatible.


Quadraphonic

Surround sound


Ambiophonics

Ambisonics

  • https://en.wikipedia.org/wiki/Ambisonics - a full-sphere surround sound technique: in addition to the horizontal plane, it covers sound sources above and below the listener. Unlike other multichannel surround formats, its transmission channels do not carry speaker signals. Instead, they contain a speaker-independent representation of a sound field called B-format, which is then decoded to the listener's speaker setup. This extra step allows the producer to think in terms of source directions rather than loudspeaker positions, and offers the listener a considerable degree of flexibility as to the layout and number of speakers used for playback.






  • mcfx – multichannel audio plug-in suite, VST plug-ins for MacOS, Windows and Linuxm (mcfx_convolver, mcfx_delay, mcfx_filter, mcfx_gain_delay, mcfx_meter), these plug-ins are very handy if you want to process multiple channels in one go for example; multiple loudspeaker setups, Ambisonics (see ambiX); Microphone array post productions (eg. Eigenmike®)




  • http://spatium.ruipenha.pt/ - a set of free, open source and modular software tools for sound spatialization. It is comprised of 4 different types of software: spatialization renderers: standalone applications that render spatialized audio using ambisonics or amplitude panning; spatialization interfaces: standalone interfaces that generate spatial information to control the spatialization renderers via OSC; plugins: audio unit plugin and max for live devices to control the spatialization renderers via OSC; max objects: a library of objects for spatialization using ambisonics or amplitude panning in Cycling’74 Max.





Wave field synthesis


Processing tools


python-mix

SoX

  • SoX - Sound eXchange, the Swiss Army knife of sound processing programs. SoX is a cross-platform (Windows, Linux, MacOS X, etc.) command line utility that can convert various formats of computer audio files in to other formats. It can also apply various effects to these sound files, and, as an added bonus, SoX can play and record audio files on most platforms.
play --show-progress -c 2 --null synth brownnoise reverb bass 6 treble -3 echos 0.8 0.9 1000 0.3 1800 0.25 [61]

play -n -c1 synth whitenoise band -n 100 20 band -n 50 20 gain +25  fade h 1 864000 1

play -c2 -n synth pinknoise band -n 280 80 band -n 60 25 gain +20 treble +40 500 bass -3 20 flanger 4 2 95 50 .3 sine 50 lin [62]

pyDub

Composers Desktop Project




  • The Sound Loom - an integrated graphic interface to the CDP sound-processing software, a comprehensive collection of over 500 instruments for sound transformation developed as practical working tools by composers over many years, available from the Composers' Desktop Project. The Sound Loom + CDP software is a powerful toolbox for composers, not a performance instrument. Using it, you can specify the parameters of any process to any degree of time-varying detail, detail you may have composed or have extracted from some other complex sound-event. You cannot, however, alter these parameters while the process is running. In compensation, the system offers almost any conceivable process for transforming sounds and sound-data (the data might be loudness envelopes, pitch-tracking information, spectral analysis data, filter specifications etc.) all running in a unified, intelligent environment. Trevor Wishart.i

Mammut

  • Mammut does an FFT of the whole sound (no windows). Various operations can subsequently be done in the frequency domain, such as unlinear stretching of the spectrum, sprectrum shifting, etc. How is the program useful? Doing a giant FFT of the entire sound, as opposed to splitting the sound up into short windows, is unusual. Such a method implies that time-related parameters are included in the spectral coefficients in a non-intuitive manner, and changes in the frequency domain may radically change developments in the time domain. Mammut is a fairly unpredictable program, and the user will need to get used to letting go of controlling the time axis. The sounding results are often surprising and exciting.

Fscape

FreqTweak

  • FreqTweak is a tool for FFT-based realtime audio spectral manipulation and display. It provides several algorithms for processing audio data in the frequency domain and a highly interactive GUI to manipulate the associated filters for each. It also provides high-resolution spectral displays in the form of scrolling-raster spectrograms and energy vs frequency plots displaying both pre- and post-processed spectra.

TAPESTREA

  • TAPESTREA (Techniques And Paradigms for Expressive Synthesis, Transformation, and Rendering of Environmental Audio, or taps, is a unified framework for interactively analyzing, transforming and synthesizing complex sounds. Given one or more recordings, it provides well-defined means to: identify points of interest in the sound and extract them into reusable templates; transform sound components independently of the background and/or other events; continually resynthesize the background texture in a perceptually convincing manner; controllably place event templates over backgrounds, using a novel graphical user interface and/or scripts written in the ChucK audio programming language

Build fails on Linux. Fixing two or three indirect includes gets further, but fails on building it's included [old] chuck.

SPEAR

  • SPEAR (Sinusoidal Partial Editing Analysis and Resynthesis) is an application for audio analysis, editing and synthesis. The analysis procedure (which is based on the traditional McAulay-Quatieri technique) attempts to represent a sound with many individual sinusoidal tracks (partials), each corresponding to a single sinusoidal wave with time varying frequency and amplitude. Something which closely resembles the original input sound (a resynthesis) can be generated by computing and adding all of the individual time varying sinusoidal waves together. In almost all cases the resynthesis will not be exactly identical to the original sound (although it is possible to get very close).

Aside from offering a very detailed analysis of the time varying frequency content of a sound, a sinusoidal model offers a great deal of flexibility for editing and manipulation. SPEAR supports flexible selection and immediate manipulation of analysis data, cut and paste, and unlimited undo/redo. Hundreds of simultaneous partials can be synthesized in real-time and documents may contain thousands of individual partials dispersed in time. SPEAR also supports a variety of standard file formats for the import and export of analysis data.

Windows/Mac only :(

Ceres3

  • Ceres3 is a cut-and-paste spectral editor with musically enhanced graphic control over spectral activity of a sound file. It is a free educational program with no other aims, and it owes most of its framework to Oyvind Hammer's Ceres and Jonathan Lee's Ceres2. It has an X-window Motif/OpenMotif based GUI, organized around four principal menus with simple keyboard shortcuts.

ATS

  • ATS is a spectral modeling system based on a sinusoidal plus critical-band noise decomposition. The system can be used to analyze recorded sounds, transform their spectrum using a wide variety of algorithms and resynthesize them both out of time and in real time.

Only takes mono .wav files

Cecilia

  • Cecilia is an audio signal processing environment aimed at sound designers. Cecilia mangles sound in ways unheard of. Cecilia lets you create your own GUI using a simple syntax. Cecilia comes with many original built-in modules and presets for sound effects and synthesis.

Loris

  • Loris is an Open Source sound modeling and processing software package based on the Reassigned Bandwidth-Enhanced Additive Sound Model. Loris supports modified resynthesis and manipulations of the model data, such as time- and frequency-scale modification and sound morphing. The Loris programmers' interface supports the C, C++, and Python programming languages, and SWIG interface files are provided so that the API can be easily extended to a variety of other languages. The package includes a handful of utility programs for basic sound modeling and resynthesis, and standard UNIX/Linux tools that build and install the libraries, headers, and utilties.

FxEngine

  • FxEngine - an Open C++ Framework under LGPL license. The FxEngine Framework simplifies the plugin architecture for the data flow processing. It provides a full control to the plugin architecture for applications that require custom solutions.
  • FxJackPack - contains two plugins for the FxEngine framework which enables the recording and playback sound through JACK (Jack Audio Connection Kit).

NASPRO

Aglaophone

SpectMorph

  • SpectMorph is a free software project which allows to analyze samples of musical instruments, and to combine them (morphing). It can be used to construct hybrid sounds, for instance a sound between a trumpet and a flute; or smooth transitions, for instance a sound that starts as a trumpet and then gradually changes to a flute.

Spectral Toolbox

  • The Spectral Toolbox - a suite of analysis-resynthesis programs that locate relevant partials of a sound and allow them to be resynthesized at any specified frequencies. This enables a variety of techniques including spectral mappings (sending all partials of a sound to fixed destinations), spectral morphing continuously interpolating between the partials of a source sound and a destination) and dynamic tonality (a way of organizing the relationship between a family of tunings and a set of related timbres). A complete application called the TransFormSynth concretely demonstrates the methods using either a one-dimensional controller such as a midi keyboard or a two-dimensional control surface (such as a MIDI guitar, a computer keyboard, or the forthcoming Thummer controller). Requires installing either Max Runtime (free from cycling74) or Max/MSP (not free) and some java routines.

Kiss FFT

  • https://sourceforge.net/projects/kissfft/ - A Fast Fourier Transform based up on the principle, "Keep It Simple, Stupid." Kiss FFT is a very small, reasonably efficient, mixed radix FFT library that can use either fixed or floating point data types.

Melodyne

$

to sort

Time/pitch

Paul's Extreme Sound Stretch

tcStrech

  • tcStretch - a Windows VST 2.4 plug-in for time stretching, pitch shifting, and blurring. Time stretch can be up to 1 million times slower. Pitch shift is plus or minus one octave. Blurring blends nearby spectral material to make the output less static. Playback is sensitive to transients in the source material. Playback rate and blur amount are automatically adjusted according to the transient contour of the material being stretched. Playing transients at a faster rate than non-transients tends to make the output sound less obviously stretched. Playing transients more slowly than non-transients emphasizes the stretchiness [good when playing in reverse mode with highly transient material]. Adding blur brings in some subtle (or not so subtle) randomness which helps to keep the output less static.

Rubber Band

  • Rubber Band Library is a high quality software library for audio time-stretching and pitch-shifting. It permits you to change the tempo and pitch of an audio stream or recording dynamically and independently of one another. Rubber Band Library is intended for use by developers creating their own application programs rather than directly by end users, although it does also include a simple (free) command-line utility program that you can use for fixed adjustments to the speed and pitch of existing audio files.

Play it Slowly

  • Play it Slowly - software to play back audio files at a different speed or pitch. It does also allow you to loop over a certain part of a file. It's intended to help you learn or transcribe songs. It can also play videos thanks to gstreamer. Play it slowly is intended to be used on a GNU/Linux system like Ubuntu.

StretchPlayer

  • StretchPlayer is an audio file player that allows you to change the speed of the song without changing the pitch. It will also allow you to transpose the song to another key (while also changing the speed). This is a very powerful tool for musicians who are learning to play a pre-recorded song.

PitchTempoPlayer

  • PitchTempoPlayer (PTPlayer) is an audio player for Linux that allows to change pitch and speed (tempo) of the sound independently of each other. Fine tuning (less than half tone) is also possible, as well recording, exporting the modified audio file and managing a playlist.

SBSMS

SoundTouch

  • SoundTouch is an open-source audio processing library for changing the Tempo, Pitch and Playback Rates of audio streams or audio files. The library additionally supports estimating stable beats-per-minute rates for audio tracks. The SoundTouch library is intended for application developers writing sound processing tools that require tempo/pitch control functionality, or just for playing around with the sound effects.

The SoundTouch library source kit includes also an example utility SoundStretch for processing .wav audio files from command-line interface.

http://www.katjaas.nl/pitchshift/pitchshift.html

Neural network

Editing

Audacity

  • Audacity is a free, easy-to-use, multi-track audio editor and recorder for Windows, Mac OS X, GNU/Linux and other operating systems. The interface is translated into many languages. You can use Audacity to record live audio, record computer playback on any Windows Vista or later machine, convert tapes and records into digital recordings or CDs, edit WAV, AIFF, FLAC, MP2, MP3 or Ogg Vorbis sound files, cut, copy, splice or mix sounds together, change the speed or pitch of a recording, etc.

mhWaveEdit

  • mhWaveEdit is a graphical program for editing, playing and recording sound files. It is lightweight, portable, user-friendly and handles large files very well. The program itself has only simple editing features such as cut'n'paste and volume adjustment but it can also use Ladspa effect plugins and the effects provided by the SoX application. It can also support additional file formats besides wav through libsndfile and mp3/ogg import and export through lame and oggenc/oggdec.

Sweep

  • Sweep is an audio editor and live playback tool for GNU/Linux, BSD and compatible systems. It supports many music and voice formats including WAV, AIFF, Ogg Vorbis, Speex and MP3, with multichannel editing and LADSPA effects plugins.

ReZound

  • ReZound aims to be a stable, open source, and graphical audio file editor primarily for but not limited to the Linux operating system.

ocenaudio

  • ocenaudio is a cross-platform, easy to use, fast and functional audio editor. It is the ideal software for people who need to edit and analyze audio files without complications. ocenaudio also has powerful features that will please more advanced users.

WaveSurfer

  • WaveSurfer is an open source tool for sound visualization and manipulation. Typical applications are speech/sound analysis and sound annotation/transcription. WaveSurfer may be extended by plug-ins as well as embedded in other applications.

soniK

  • soniK is an open source digital audio editor for Linux, using the KDE platform. soniK allows you to record, edit and process sounds on your computer.

EKO

Gnome Wave Cleaner

wavbreaker

  • wavbreaker is a GTK wave file splitter for Linux and Unix-like operating systems licensed under the terms of the GNU General Public License. This application's purpose in life is to take a wave file and break it up into multiple wave files. It makes a clean break at the correct position to burn the files to an audio cd without any dead air between the tracks. It will only read wave files, so use an appropriate tool to convert ogg, mp3, etc. files and then break them up.

ISSE

LAoE

  • LAoE means Layer-based Audio Editor, and it is a rich featured graphical audiosample-editor, based on multi-layers, floating-point samples, volume-masks, variable selection-intensity, and many plugins suitable to manipulate sound, such as filtering, retouching, resampling, graphical spectrogram editing by brushes and rectangles, sample-curve editing by freehand-pen and spline and other interpolation curves, effects like reverb, echo, compress, expand, pitch-shift, time-stretch, and much more... And it is free of charge, under GPL license!

Snd

  • Snd is a sound editor modelled loosely after Emacs. It can be customized and extended using either s7 (included in the Snd sources), Ruby, or Forth.
  • San Dysth is a standalone realtime soft-synth written in SND. This softsynth has controls to generate various kinds of sounds inbetween white noise and pure tones. It also provides controllers to disturb the generated sound by using a "period counter" to extend the variety of the generated output. Common usage for the softsynth is organ-like sound, organic-like sound, alien-like sounds, water-like sounds, and various kinds of noise (noise artists could find this softsynth most useful).

GNUsound

  • GNUsound is a multitrack sound editor for GNOME 1 and 2. The current version is 0.7.5, which was released 6 July 2008.

Marlin

  • Marlin - A GNOME Sample Editor. last updated 03-08-2004

Gnoise

  • GNoise - gtk+ or gnome (you can ./configure it either way) wave file editor for Linux. Prime considerations were for it to be speedy and be able to handle big files. So far it can: load and display files, generate a display cache, play the file, cut, copy, paste, (unlimited) undo, mute, fade in/out, reverse, normalize, and more. 2003

Effects

Equalisation / mastering

  • Alsaequal is a real-time adjustable equalizer plugin for ALSA. It can be adjusted using an ALSA compatible mixer, like alsamixergui or alsamixer. Alsaequal uses the Eq CAPS LADSPA Plugin as it's default equalizer but you can change it to use almost any LADSPA plugin, like mbeq from the swh-plugin package.


  • jackEQ is intended to provide an accessible method for tweaking the treble, mid and bass of any JACK aware applications output. Designed specifically for live performance, it is modelled on various DJ mixing consoles which the main author Patrick Shirkey (aka DJ Kotau) has worked with live. LADSPA.
  • NotNotchFilter - a performance-oriented filter designed to replace the mid-EQ found in a standard 3-band DJ mixer. The key advantage of this filter is that it cleanly cuts out single voices or instruments in a track, whereas a standard 3-band filter dampens them. This is because NotNotchFilter, as the name suggests, is not actually a notch filter. Rather, it is a combination of a hipass and lopass filter which work on opposite sides of the target frequency.
  • HiLoFilter - a simple hipass and lopass filter which can be easily controlled with a single knob. It is loosely inspired by the same type of filter found on some Pioneer DJM mixers, and also the The Pilgrim, another great plugin which provides roughly the same functionality.
  • x42-eq is a 4 band parametric equalizer with additional low+high shelf filters, Low and High-pass, as well as an optional, custom GUI displaying the transfer function and realtime signal spectrum or spectrogram. It is available as LV2 plugin and standalone JACK-application.
  • Lv2fil - Stereo and mono LV2 plugins, four-band parametric equalisers


  • EQ10Q - an audio plugin bundle over the LV2 standard (http://lv2plug.in) implementing a powerful and flexible parametric equalizer and more (gate)



  • XO Wave - a digital audio workstation designed to meet the needs of audio and video professionals, with a focus on CD Mastering and audio for video work. XO Wave provides professional-grade capabilities for manipulating audio, with a familiar and elegant interface. Support for direct recording from any Core Audio device, importing and exporting files in a variety of formats (including songs from iTunes playlists), CD burning, multi-track editing, support for many Audio Units, and QuickTime synchronization and export, make XO Wave a great tool for all kinds of audio work, including podcasting, vodcasting, CD Mastering, mixing and more! Java.
  • JAMin is the JACK Audio Connection Kit (JACK) Audio Mastering interface. JAMin is an open source application designed to perform professional audio mastering of stereo input streams. It uses LADSPA for digital signal processing (DSP)

Compression / limiting

Rough Rider

  • Rough Rider - a modern compressor with a bit of "vintage" style bite and a uniquely warm sound. Perfect for adding compression effects to your drum buss, it also sounds great with synth bass, clean guitar, and backing vocals. Definitely not an all-purpose compressor, Rough Rider is at its best when used to add pump to rhythmic tracks. Of course, you can use it however you'd like. The Compressor Police aren't gonna come to your house and give you a citation. Slap it on a track and crank some knobs.

VLevel

  • VLevel is a tool to amplify the soft parts of music so you don't have to fiddle with the volume control. It looks ahead a few seconds, so it can change the volume gradually without ever clipping. Because the volume is changed gradually, "dynamic contrast" is preserved.

DPL1

  • DPL1 is an look-ahead digital peak limiter, the kind you would use as the final step to avoid clipping when mastering or mixing. It can be used as an effect on individual instrument tracks as well. Latency is 1.2 ms rounded up to the nearest multiple of 8, 16 or 32 samples depending on sampling frequency. This amounts to 56 samples at 44.1 kHz, 64 samples at 48 kHz, and twice those values for 88.2 or 96 kHz.

Radium Compressor

Visual Compressor

Molot Lite

nova67p

sixtyfive

  • https://delamanchavst.wordpress.com/2013/11/20/sixtyfive-compressor-dbx-165a-style-is-now-free/ sixtyfive is a vintage-style, RMS Compressor, inspired by the dbx® 165A, a classic 1970’s compressor found in many studios, but it also adds a couple of new twists. It’s a soft-knee RMS compressor with a vintage flavour. The RMS detection and soft-knee help to give a smooth and musical compression experience, the non-linear response imparts character and the gentle saturation brings colour and warmth. As well as all of the originals features, this version adds parallel compression, extended knob ranges and peak metering

GTA

Rough Rider Compressor

  • Rough Rider Compressor - a modern compressor with a bit of "vintage" style bite and a uniquely warm sound. Perfect for adding compression effects to your drum buss, it also sounds great with synth bass, clean guitar, and backing vocals. Definitely not an all-purpose compressor, Rough Rider is at its best when used to add pump to rhythmic tracks. Rough Rider is available as both 32- and 64-bit VSTs for Windows, and as a Universal Binary AU/VST for OSX.


FuzzPlus 3 - Back by popular demand, a ground-up rewrite of our popular FuzzPlus series. Featuring the same much-loved vintage fuzz pedal model, plus a new filter, self-feedback, and a modern procedural user interface, FuzzPlus3 is a fine addition to any producer's toolset. Plus you can't beat the price!

MLimiter

W1 Limiter

  • W1 Limiter - a clone of Waves L1, with identical output, as well as an approximation of Waves L2.

VeeMax

Gate

  • abGate is a LV2 noise gate plugin in the LV2 format to manage noise. A noise gate is a component which attenuates an audio signal when it falls below a set threshold, so it can be applied to an audio track which has one or more periods of silence where no noise should be apparent.
  • StormGate1 - an unique and innovative amplitude rhythmic gating effect which lets you draw the gating patterns freely by hand or with the aid of powerful drawing tools.


Reverb

  • mverb - Studio quality, open-source reverb. Its release was intended to provide a practical demonstration of Dattorro’s figure-of-eight reverb structure and provide the open source community with a high quality reverb.
  • REV1 - a reworked version of the reverb originally developed for Aeolus. Its character is more 'hall' than 'plate', but it can be used on a wide variety of instruments or voices. It is not a spatialiser - the early reflections are different for the L and R inputs, but do not correspond to any real room. They have been tuned to match left and right sources to some extent.
  • KR-Reverb FS - an easy to use Reverb processor based on features found on our commercial product KR_Space. KR-Reverb FS is designed for ease of use by adjusting internally the equalization and damping controls to optimal levels for producing a warm reverb sound suitable for a wide range of applications.


See also #Convolution

Delay

  • Tom Pong is a ping pong delay VST Plugin. Windows only. A ping pong delay is a delay which alternates from one speaker to another. If the balance is set to 0.5, a stereo signal will invert itself each time the delay buffer is played back. If the balance is set to either side of 0.5, the signal bounces back and forth between the speakers. Tom Pong can be synced to the host sequencer, or delay times can be set by sample count. Feedback and output level are also adjustable.
  • MidSide - MS Delay/Mixer VST plug-in. It can be use for widening effects of an input stereo signal.
  • BOWECHO - Quad Modular Delay. Use the key R7P1R64720175164548606433 to unlock the demo version. OS X, Windows and Linux.

Tapiir

  • Tapiir - a simple and flexible audio effects processor, inspired on the classical magnetic tape delay systems used since the early days of electro-acoustic music composition. It provides a graphical user interface consisting of six delay lines, or "taps", which can introduce an almost arbitrarily big or small delay to their inputs and can be feed back to each other. A wide set of effects can be easily achieved by properly configuring and connecting the delay lines: complex echo patterns, resonances, filtering, etc. Delays, interconnections and gains can all be controlled in real time.

Tremolo

  • Richter - a two LFO tremolo, the interaction of which creates far more complex volume oscillations than can be created with a single LFO. The rate and depth controls of each LFO can each be modulated by two more LFOs to create variations in frequency and depth, and tempo sync is available on all oscillators. VST, VST3, and Audio Unit, Windows, Mac, and Linux.


Filter

  • DtBlkFx - a freeware Fast-Fourier-Transform (FFT) based Multi effect VST plug-in for Windows and Mac. Precision parametric equalizing with sharp-roll off, adjust individual harmonics of a sound. Harmonic based (or comb) filtering, including active harmonic tracking. Various types of noise control, change contrast between loud and soft frequencies, clip frequencies or apply sound smearing. Frequency shifting, harmonic and non-harmonic shifting, including active harmonic repitch.


  • sfilter - creates a stepped filtered sequence, to create gating, sweeps or rhythmic modulation of filter cut-off. It uses a variable state filter, varying between 2 adjustable cut-off values according to a tempo-sync’d step sequencer. An LFO can also modulate the filter for extra movement
  • pfilter - creates a steppy, gated effect, but using filter cut-off instead of volume to give a wider range of possibilities. It uses a variable state filter, triggered between 2 adjustable cut-off values by a tempo-sync’d probability-based step sequencer. An LFO can modulate the filter when triggered and trigger pulse length, attack and release can shape the sound


  • sumo - an effect plugin to make any sound as fat as you like. It’s good for fattening up leads and basses, adding some weight to pads, making your vocals chubby and your drums obese


  • https://github.com/jd-13/Songbird-Formant-Filter - Songbird is a modulated vowel/formant filter. Select two vowels and then modulate between them using either the manual slider or the LFO. There are five vowel sounds and two modulation modes available to choose from. The "freq" modulation mode allows you to modulate a single filter between the two vowels chosen, to create a powerful vocal sound. The "blend" mode provides a more subtle effect, modulating the mix between two parallel filters. Songbird is ideal for creating both vocal bass sounds and subtle filter sweeps.

Exciter

  • You Wa Shock ! - VST/Winamp effect to brighten up and maximize any truck you hand it.

Chorus

Flanger

Ring modulation

  • https://www.meldaproduction.com/MRingModulator - performs classic ring-modulation effects using one or two oscillators. With a clean interface that gives easy access to more advanced controls like our adjustable phase difference and shape features, including editable custom waveforms and harmonics.
  • ring thing is a multi-flavour ring modulator, with frequency and mix level controlled by an XY pad and each axis modulated by it’s own tempo-sync LFO. The modulation in both axes is shown graphically on the XY pad.


Shaping

  • https://www.meldaproduction.com/MWaveShaper - goes beyond a traditional wave-shaping plugin. Unlike the conventional approach of providing a few predefined patterns, MWaveShaper lets you construct your own shape creating a much greater range and control over your sound.
  • https://www.meldaproduction.com/MComb - an extremely powerful multi-comb filter plugin. Using its 2 extremely versatile modulators it becomes a powerful processor, which can follow a simple LFO, react to input levels, MIDI note, input pitch...

Preamp

old;

  • SDRR - built to satisfy almost all of your saturation desires. It provides a comprehensive set of controls to manipulate the character of the saturation to make it fit exactly. SDRR offers four different main modes: TUBE, DIGI, FUZZ, DESK and reacts dynamically to the input signal. Each mode has its unique crosstalk behavior, which can be switched off or exaggerated. A unique RMS level difference metering mode makes level matching an easy task. SDRR can be different things: a saturation, a compressor, an EQ, a bit-crusher, a subtle stereo widener, or simply add some movement to your tracks with the DRIFT control. Add warmth, depth and character to your tracks with SDRR.
  • IVGI - can deliver very soft and subtle saturation, that feels at home on the master buss. It is equally capable of very dense and dirty distortion effects to spice up single tracks. IVGI's base sound is comparable to the DESK mode in the big brother SDRR. Windows/Mac VST.

Distortion

  • FuzzPlus3 - vintage fuzz pedal model, plus a new filter, self-feedback, and a modern procedural user interface
  • Arcangel is a jack effect for arctan distortion. Sounds nice and grungy without clipping at high levels, and sounds nice at lower levels.
  • https://github.com/moddevices/mod-distortion Analog distortion emulation developed by mod team (lv2). The effects were developed suposing you have a -15dB input signal (measured with digital peak meter) when you play loud, so its recommended that you ajust your input gain to this level. We recommend that you use only the stable plugins: -DS1 -Big Muff Pi
  • deteriorate-lv2 - A set of plugins to deteriorate the sound quality of live inputs. The set contains two plugins: A basic granulator, a basic downsampler
  • Deathcrush is a distorsion plugin, made up of some raw effects (such as bitcrusher and compressor) to really ruin your gentle sounds.


  • Carve - a wave shaping distortion with several available waveforms and two distortion units, which can be configured in serial, parallel or stereo, and blended with the dry sound. VST, VST3, and Audio Unit, Windows, Mac, and Linux
  • GORGON - Distortion. Check Glitchmachines Subvert, the evolution of Gorgon. The download contains the unlocked installers. OS X and Windows.
  • https://www.meldaproduction.com/MBitFun - a serious tool for extreme distortion lovers. It converts the audio into limited fixed-point precision form, from a 1 single bit up to 16 bits per sample, and lets you access each bit, applying several operations.


  • thrummaschine - a 3-band distortion effect with independant, LFO-driven filters. Make your bass, mid and high frequencies oscillate at different speeds, shapes and pan, with whatever flavour and level of distortion you dial in for each band
  • Imperfection - an effect plugin to put some lofi back into your pristine 64bit audio. Who wants hi fidelity reproduction when you can reduce the quality, take out some of that bottom end, add a smear of saturation and bring your noise floor back up. Hmmm, perfectly imperfect
  • bent - a circuit-bent resynthesis effect. It will recreate the incoming audio into an approximation of itself using a waveform-morphing audio oscillator. Depending on the volume and pitch of the audio, it will gate, stutter and morph the output in sync with your host tempo
  • - freq show - screws around with your audio and ouputs an unholy version of whatever you fed it
  • GClip - Free VST wave-shaping signal clipper. Clip peaks off audio with abrupt or smooth wave-shaping. Graph and waveform displays assist in setting the clip level according to the source material. Oversampling can be enabled to reduce aliasing.

Frequency shifting

  • Frequency Shifter - a VST™2.4 software effect for Microsoft Windows® written in native C++ code. Frequency shifting up to ±5000 Hz. Optional LFO with five waveforms. Four frequency ranges, three mix modes.
  • https://www.meldaproduction.com/MFreqShifter - an extremely versatile frequency shifter. Unlike pitch-shifters it doesn't keep harmonic relationships and can provide everything from mild stereo expansion to complete sonic destruction.

Pitch shifting

  • Autotalent began as the result of a week of recreational signal processing in May 2009. It's a real-time pitch correction plugin. You specify the notes that a singer is allowed to hit, and Autotalent makes sure that they do. You can also use Autotalent for more exotic effects, like the Cher / T-Pain effect, making your voice sound like a chiptune, adding artificial vibrato, or messing with your formants. Autotalent can also be used as a harmonizer that knows how to sing in the scale with you. Or, you can use Autotalent to change the scale of a melody between major and minor or to change the musical mode. LADSPA.
  • talentledhack - an LV2 port of Tom Baran's Autotalent, with added features and improved performance.
  • AT1 - an 'autotuner', normally used to correct the pitch of a voice singing (slightly) out of tune. Compared to 'Autotalent' it provides an improved pitch estimation algorithm, and much cleaner resampling. AT1 does not include formant correction, so it should be used to correct small errors only and not to really transpose a song. The 'expected' pitch can be controlled by Midi (via Jack only), or be a fixed set of notes. AT1 can probably be used on some instruments as well, but is primarily designed to cover the vocal range. It's also usable as a quick and dirty guitar tuner.
  • x42-autotune - aka fat1.lv2, is an auto-tuner based on Fons Adriaensen's zita-at1. The main differences to zita-at1 are that the LV2 plugin version reports its latency to the host, saves the state with the session and the MIDI input has sidechain semantics.
  • TAL-Vocoder is a vintage vocoder emulation with 11 bands that emulates the sound of vocoders from the early 80’s. It includes analog modeled components in combination with digital algorithms such as the SFFT (Short-Time Fast Fourier Transform). This vocoder does not make a direct convolution of the carrier and modulation signal as other digital vocoders maybe do. It includes an envelope follower for every of the eleven bands. This vocoder is optimized for voice processing and includes some algorithms for consonants to make the voice more intelligible. The carrier signal is a VCO (Voltage Controlled Oscillator) with a Pulse, Saw, Noise and SubOsc. But it’s also possible to use the left stereo input as carrier. This way every sound source can be used as carrier signal.
  • vocoder (JACK standalone). It's a complete rewrite of the old vocoder, now done in C++ using FLTK.


  • VocProc - an LV2 plugin for pitch shifting (with or without formant correction), vocoding, automatic pitch correction and harmonizing of singing voice.





  • La Voz Cantante - a 512 channel vocoder. The modulator input - usually a sung or simpjy spoken voice - is analyzed with respect to its spectral content, which is then applied to the other sound source. The latter may be any externally supplied signal ranging from pink noise, synth pads, guitar or even drums. Alternatively, there is an internal, MIDI driven synth which is optimized for best speech reproduction fidelity. You can blend the high frequencies with noise for more natural sounding plosives and fricatives. Threre is also a noise gate, a compressor and a stereo reverb on board.

Harmonizer

  • MIDI Choir - will take a single-pitched audio source and transpose it in real time according to the supplied MIDI notes. My main motivation to create MIDI Choir was to be able to sing harmonies live, however the product may also be used for studio work

Phase vocoder

  • pvc - PVC is a collection of phase vocoder signal processing routines and accompanying shell scripts for use in the transformation and manipulation of sounds. It is written in C and designed to be used in a UNIX environment.
  • pv in WaoN project is yet another phase vocoder implementation for my understanding of the process behind WaoN and others. Here is what you can do: time streching/shrinking without pitch changing (by rate option) and pitch shifting without time streching (by pitch option)
  • pvoc is a collection of LADSPA units and a command line tool for time compression/expansion of sound data making use of the phase-vocoding technique[1].

Noise reduction

Convolution

messy section

  • https://en.wikipedia.org/wiki/Convolution - In acoustics, reverberation is the convolution of the original sound with echoes from objects surrounding the sound source. In digital signal processing, convolution is used to map the impulse response of a real room on a digital audio signal.

In electronic music convolution is the imposition of a spectral or rhythmic structure on a sound. Often this envelope or structure is taken from another sound. The convolution of two signals is the filtering of one through the other.




  • https://en.wikipedia.org/wiki/Impulse_response - impulse response function (IRF), of a dynamic system is its output when presented with a brief input signal, called an impulse. More generally, an impulse response refers to the reaction of any dynamic system in response to some external change. In both cases, the impulse response describes the reaction of the system as a function of time (or possibly as a function of some other independent variable that parameterizes the dynamic behavior of the system). In all these cases, the dynamic system and its impulse response may be actual physical objects, or may be mathematical systems of equations describing such objects.





  • QLoud - tool to measure loudspeaker frequency and step responses and distortions


  • Aliki - an integrated system for Impulse Response measurements, using the logaritmic sweep method developed by Prof. Angelo Farina. Release 0.0.3-beta is available on the downloads page. It's still very incomplete but it has been used for real measurement work.
  • deconvolv - convolution and deconvolution of WAV files. Supported signal processing functions: correlation, convolution, de-convolution, convolution with Hilbert transformation, de-convolution with Hilbert transformation.


  • The HISSTools Impulse Response Toolbox: Convolution for the Masses - this paper introduces the HISSTools project, and its first release, the HISSTools Impulse Response Toolbox (HIRT); a set of tools for solving problems relating to convolution and impulse responses (IRs). Primarily, the aims and de- sign criteria for the HISSTools project are discussed. The elements of the HIRT are then outlined, along with mo- tivating factors for its development, underlying technolo- gies, design considerations and potential applications.
    • https://github.com/HISSTools/HISSTools_Impulse_Response_Toolbox - HISSTools first release is a set of tools for working with convolution and impulse responses in Max. This set of object addresses various tasks, including measuring impulse responses, spectral display from realtime data/ buffers, and buffer-based convolution, deconvolution and inversion.
  • ExpoChirpToolbox - an impulse response (IR) measurement tool chain in Pure Data, available for Windows, OSX and Linux. It implements the Exponential Sine Sweep method which has been so succesfully advocated by Angelo Farina. The toolbox is in developement, and has functionality for the generation of test signals, recording test responses, IR editing and basic IR analysis. The edited IR can be applied as a convolution filter in the toolbox. This page shows screenshots, and the tool can be downloaded from the page bottom.
  • DRC - a program used to generate correction filters for acoustic compensation of HiFi and audio systems in general, including listening room compensation. DRC generates just the FIR correction filters, which can be used with a real time or offline convolver to provide real time or offline correction. DRC doesn't provide convolution features, and provides only some simplified, although really accurate, measuring tools.


  • REW - free room acoustics analysis software for measuring and analysing room and loudspeaker responses. The audio analysis features of REW help you optimise the acoustics of your listening room, studio or home theater and find the best locations for your speakers, subwoofers and listening position. It includes tools for generating audio test signals; measuring SPL and impedance; measuring frequency and impulse responses; measuring distortion; generating phase, group delay and spectral decay plots, waterfalls, spectrograms and energy-time curves; generating real time analyser (RTA) plots; calculating reverberation times; calculating Thiele-Small parameters; determining the frequencies and decay times of modal resonances; displaying equaliser responses and automatically adjusting the settings of parametric equalisers to counter the effects of room modes and adjust responses to match a target curve.




  • BruteFIR - a software convolution engine, a program for applying long FIR filters to multi-channel digital audio, either offline or in realtime. Its basic operation is specified through a configuration file, and filters, attenuation and delay can be changed in runtime through a simple command line interface. The FIR filter algorithm used is an optimised frequency domain algorithm, partly implemented in hand-coded assembler, thus throughput is extremely high. In realtime, a standard computer can typically run more than 10 channels with more than 60000 filter taps each.
  • IR - a no-latency/low-latency, realtime, high performance signal convolver especially for creating reverb effects. Supports impulse responses with 1, 2 or 4 channels, in any soundfile format supported by libsndfile.


  • SpecMatch - can be used to adapt the sound produced by a Guitarix setting to another recorded sound. It can also be used independently of Guitarix (cf. specmatch --help). Then you will need another convolver like the LV2 Convolution Reverb to use the produced filter. You can also use just the Python modules (e.g. from specmatch import SmoothedIR).
  • keFIR - provides music producers and sound engineers with a zero-latency FIR filter effect designed to help them enhance their tracks and generate astonishing sounds. Windows VST.


  • Jconvolver - a Convolution Engine for JACK, based on FFT convolution and using non-uniform partition sizes: small ones at the start of the IR and building up to the most efficient size further on. It can perform zero-delay processing with moderate CPU load. Jconvolver uses the convolution engine designed for Aella, a convolution application for reverberation processing (to be announced later). This distributes the calculation over up to five threads, one for each partition size, running at priorities just below the the one of JACK's processing thread. This engine is a separate library that will be documented as soon as I can find the time.
  • https://github.com/brugal/gtrfx/tree/master/jconv - a Convolution Engine for JACK using FFT-based partitioned convolution with multiple partition sizes. It's a command line version of what will be the core of the Aella reverb processor, but without the special reverb feautures, preset management, reverb envelope editing etc. that Aella will have.



  • https://github.com/wardnijman/Hijack-Filter - a vst/au plug-in which recreates a (analog) filter response with the use of a recording of a filtered train of impulses. It is created with the use of the JUCE framework. The plug-in is already in a working state, but still under construction.


  • HybridReverb2 - a convolution-based reverberation effect which combines the superior sound quality of a convolution reverb with the tuning capability of a feedback delay network. The sound quality of a convolution reverb depends on the quality of the used room impulse responses. HybridReverb2 comes with a set of room impulse responses which were synthesized with tinyAVE, an auralization software which was developed at the Institute of Communication Acoustics, Ruhr-Universität Bochum (Borß and Martin, 2009; Borß, 2009a). These room impulse responses are designed for a speaker setup with two front and two rear speakers (Borß, 2009b). For a full surround sound effect, you will need two plugins, one plugin which uses a "front" preset for the front channels and a second plugin which uses the corresponding "rear" preset for the rear channels.


  • Voxengo Deconvolver - offers a very convenient environment in which to deconvolve large sets of recorded files for use with convolution plug-ins that support only a small subset of available bit-depths. Windows $.






Multi

  • truc is a multi-effect VST plug-in, with 4 banks of effects controlled by the movement of 2 pucks. The top puck controls the level of each effect bank, the bottom puck modulates any 4 of 13 parameters within the effect banks. This allows continuous morphing of the sound by moving the pucks to vary the impact of each effect bank. As well as manually controlling each puck (either by mouse or midi controller) you can lock the pucks together and/or set them to move automatically, either randomly or by a configurable LFO, all in sync with your project tempo
  • truc2 is a multi-effect plug-in with 4 different effect modules and two automated XY pads to modulate their levels and parameters. It is designed to add variation and movement, anywhere along the scale of subtle to overkill and is suitable for any material

The 4 effect modules are DIRT, GRAIN, RING and DELAY. The first XY pad modulates the volume/mix level of each module, whilst the second XY pad modulates any 4 of the 15 automatable parameters. Both XY pads can be moved manually and additionally automated with a variety of LFO shapes, speeds and depths



  • SynthTrack is an effect plugin. Applied to audio tracks, this plug-in applies Filter ADSR and LFO effects to synths on flat chords or moving sound waves. With this effect you can create chopping effects to your favorite sounds. It's ideal for creating the typical rhythmic gated pad sounds. With the envelope controlled step sequencer it's even possible to turn your pad sound into a powerful arp-like sequence. This plugin synchronizes to the host sequencer / DAW tempo.

Disto:Fx Free

  • Disto:Fx Free (Dirty Sound Destructor) - a multi-fx with distortion/dynamic shaper/saturation/filter/ring modulator/phaser/EQ and Input-Output control units.

Amplio 2.0

  • Amplio 2.0 - (VST Effect) is a way to enhance boring and dull sound. It's three band Equalizer with adjustable bands and additional multiband effect modules. Plugin was originally designed to enhance drum patterns, but version 2 is powerfull enough to be used on any type of sound.

Hysteresis

Fracture

  • Fracture - features a buffer effect, a multimode filter, three LFOs and a delay. The order of the effects in the processing chain can also be reconfigured. This plugin is geared toward adding glitchy articulations and abstract textures to your projects. Use it on anything from drums and percussion to synth lines and sound effects. Fracture’s intuitive interface and diverse features make it simple to give your projects a unique technical edge.

Rack based

Guitarix

Rakarrack

  • Rakarrack is a richly featured multi-effects processor emulating a guitar effects pedalboard. Effects include compressor, expander, noise gate, graphic equalizer, parametric equalizer, exciter, shuffle, convolotron, valve, flanger, dual flange, chorus, musicaldelay, arpie, echo with reverse playback, musical delay, reverb, digital phaser, analogic phaser, synthfilter, varyband, ring, wah-wah, alien-wah, mutromojo, harmonizer, looper and four flexible distortion modules including sub-octave modulation and dirty octave up. Most of the effects engine is built from modules found in the excellent software synthesizer ZynAddSubFX. Presets and user interface are optimized for guitar, but Rakarrack processes signals in stereo while it does not apply internal band-limiting filtering, and thus is well suited to all musical instruments and vocals. Rakarrack is designed for Linux distributions with Jack Audio Connection Kit.

GNUitar

  • GNUitar is guitar effects software that allows you to use your PC as guitar processor. It includes the following effects: wah-wah, sustain, distortion, reverberator, echo, delay, tremolo, vibrato, and chorus/flanger.

GTKgep

  • CP-GFX is simply a Cross Platform Guitar Effect Processor. The aim of the project is to create an extensible and easy to use program which is easy to port to different platforms an operating systems. Currently in development are Linux x86 and Win32 builds.
  • RedFX - FX Processor (for guitar mainly) Effects: Noise Filter, Compressor, Wah, Distortion, Tremolo, Phaser, Flanger-Vibrato, Pitch Shifter, Delay, Reverb, EQ.
  • Ecamegapedal is real-time effects processor software with a graphical user interface for controlling the effect parameters. It is meant to be used as a virtual guitar-fx or studio effects box. In addition to real-time operation, it also supports reading from and writing to audio files. All audio object and effect plugin types provided by the Ecasound libraries are supported. This includes ALSA, JACK, OSS, aRts, over 20 file formats, over 30 effect types, LADSPA plugins, and multi-operator effect presets. The implementation is based on the Ecasound and Qt libraries.

Various collections



  • TAP-plugins is short for Tom's Audio Processing plugins. It is a bunch of LADSPA plugins for digital audio processing, intended for use in a professional DAW environment such as Ardour. These plugins should compile and run on any recent (that is, not seriously outdated) GNU/Linux system. They don't require any special libraries besides the standard GNU C and math libraries, which are expected to be provided on the machine used for compiling.
  • CAPS is a collection of audio plugins comprising basic virtual guitar amplification and a small range of classic effects, signal processors and generators of mostly elementary and occasionally exotic nature. LADSPA.
  • LSP (Linux Studio Plugins) is a collection of open-source plugins currently compatible with LADSPA and LV2 formats. Phase Detector, Delay Compensator Mono, Delay Compensator Stereo, Delay Compensator X2 Stereo.
  • Infamous Plugins is a collection of open-source LV2 plugins. It hopefully helps fill some holes, supplying non-existing plugins for linux audio. There is little interest in creating ANOTHER compressor, or ANOTHER EQ when myriad other excellent lv2 versions of such already exist. At least until I become interested in making one of those things and feel I can do something different...
  • ArtyFX - a plugin bundle of artistic real-time audio effects. The aim of this plugin collection is to allow the designing of your sound just as you desired using a fast, efficient workflow.
  • Calf Studio Gear - available exclusively for LINUX-based operating systems and runs as a stand-alone effect rack connectable through Jack sound server or as plug-ins in every audio host that is able to fire up LV2 compilant devices, e.g. the highly recommended Ardour Audio Workstation. Play your SF2 sample banks, create filthy organs, fatten your sounds with phasers, delays, reverbs and other FX, process your recordings with gates, compressors, deesser and finally master your stuff with multiband dynamics - for free!


  • mda-vst - Windows VST, including Bandisto - Multi-band distortion. BeatBox - Drum replacer, Combo - Amp & speaker simulator, De-ess - High frequency dynamics processor, Degrade - Sample quality reduction, Delay - Simple stereo delay with feedback tone control, Detune - Simple up/down pitch shifting thickener, Dither - Range of dither types including noise shaping, DubDelay - Delay with feedback saturation and time/pitch modulation, Dynamics - Compressor / Limiter / Gate, Envelope - Envelope follower / VCA, Image - Stereo image adjustment and M-S matrix, Leslie - Rotary speaker simulator, Limiter - Opto-electronic style, limiter, Loudness - Equal loudness contours for bass EQ and mix correction , Multiband - Multi-band compressor with M-S processing modes, Overdrive - Soft distortion, Re-Psycho! - Drum loop pitch changer, RezFilter - Resonant filter with LFO and envelope follower, Round Panner - 3D panner, Shepard - Continuously rising/falling tone generator, Splitter - Frequency / level crossover for setting up dynamic processing, Stereo Simulator - Haas delay and comb filtering, Sub-Bass Synthesizer - Several low frequency enhancement methods, Talkbox - High resolution vocoder, TestTone - Signal generator with pink and white noise, impulses and sweeps, Thru-Zero Flanger - Classic tape-flanging simulation, Tracker - Pitch tracking oscillator, or pitch tracking EQ, Vocoder - Switchable 8 or 16 band vocoder, VocInput - Pitch tracking oscillator for generating vocoder carrier input
  • MDA-LV2 is an LV2 port of the MDA plugins by Paul Kellett. It contains 36 high-quality plugins for a variety of tasks. This is a more or less faithful port of both the effects and instrument plugins. The only functional difference in code is to support LV2-style toggle ports (> 0.0 is on, rather than 0.5). All the plugins have been tested, and thanks to several bug fixes this collection should be more reliable than the original.


  • SAFE Plug-ins (SAFE stands for Semantic Audio Feature Extraction) are a series of DAW plug-ins that allow the user to provide timbral descriptions of the audio they are processing. The plug-in then analyses the audio and saves the anonymous data to our server. This data is collected from all users and analysed to give a general synopsis of the types of sound that a given descriptor is used for. All this information can then be used to create a series of ‘semantic plug-in settings’. Users will be able to load plug-in settings by typing in descriptive words regarding the timbre of the sound being processed. The more people who upload descriptors to the server the more perceptually representative the downloaded plug-in settings will get.
  • x42-plugins - professional audio processing units available as LV2-plugins and JACK-applications
  • ReaPlugs VST FX Suite - Want to use some of the comprehensive FX plug-ins that REAPER provides, but stuck in another host? Haven't made the switch yet? Fear not -- you can download ReaPlugs, a package of FX that includes many of the plug-ins that come with REAPER, for free!


  • DISTRHO Mini Series - This collection currently includes: 3-Band EQ, 3-Band Splitter, Ping Pong Pan


  • http://intonarumori.sourceforge.net/ - Russolo Suite, a collection of LV2 plugins (and in the future, hopefully, VST) developed by Valerio Orlandini and named after the Futurist musician Luigi Russolo. For the moment, the attention is focused on the first part of this project: a sufficiently crazy synthesizer, called (what a surprise) Crazynth, and a do-it-all effect, called Omnifono.


  • GVST - several free VST effects and instruments for Windows. For the main part they are designed to be simple, light-weight and efficient, although some are more ambitious and some more experimental. Effects; GBand - Band-pass filter. GChorus - Chorus effect. GClip - Wave-shaping signal clipper. GComp - Compressor. GComp2 - Compressor. GDelay - Delay effect. GDuckDly - Ducking delay effect. GFader - Signal gain (-100 to 0 dB). GGain - Signal gain (-12 to 12 dB). GGate - Gate. GGrain - Granular resynthesis. GHi - High-pass filter. GLow - Low-pass filter. GLFO - Triple LFO effect. GMax - Limiter. GMonoBass - Bass stereo imaging effect. GMulti - Multi-band compressor and stereo enhancer. GNormal - Noise generator for avoiding denormal problems. GRevDly - Reverse delay effect. GSnap - Pitch-correction. GTune - Chromatic tuner.




  • ELE - the Excellent Low-latency Effects
  • ExEf (Extreme Effect) is an extremely powerful and flexible Real Time effect engine running on a PC under LINUX. It is designed to work with guitars, microphones and other instruments. It can run both in X Window System and command line.


  • Creox is a real-time sound processor. You can plug your electric guitar or any other musical instrument directly to the PC's sound card and start experimenting with various sound effects. Creox has a nice user-friendly GUI, a preset support, a low-latency DSP engine and each effect parameter can be altered "on the fly".


  • Louderbox is a complete 8 band audio processor. Louderbox is intended to be used with software stereo and R[B]DS generators (but perfectly usable for other things (such as web "radio") using the jack audio connection kit under Linux (and possibly other systems but this is untested). LADSPA.


  • Mustajuuri - an audio signal processing application and toolkit. It is designed to meet wide range of needs. The first and foremost is real-time effects processing. Mustajuuri can process guitar, vocals or any instrument with ease. It is also useful if you have a virtual reality system with more than 10 loudspeakers and you wonder how to control them all :-)


  • BetabugsAudio :::plug-ins - here you will find the plug-ins that we have available for download. These will have download buttons beneath them. Any GUIs without a download button are currently in development and not presently available. All other completed GUIs that are currently in need of a caring and affectionate programmer are available for viewing on the "job ads" page.






Anarchy Effects is a cross-platform bundle consisting of 5 audio plugins, each of which does a different novel form of frequency domain processing. VST versions now comply to VST 2.4 standard and plugins in different formats are available for both Mac and PC. Features: Parameter automation using MIDI controllers or VST automation. Complies with VST 2.4 standard. 32-bit & 64-bit versions for Mac (VST/AU) & PC (VST).

  • SpectralAutopan – assigns different pan positions to the different component pitches in the input signal. The effect pitch has on pan position is controlled by control points, which can change in pan position and pitch according to LFOs. This adds stereo depth and motion to sounds.
  • Corkscrew – mixes together multiple pitch-shifts of the input signal, increasing or decreasing their pitches in parallel, and fading them in/out at the extremes of their range. This creates the illusion of a sound that seems to continually rise or fall, but doesn’t actually change in average pitch.
  • HarmonicAdder – creates harmonic resonances by pitch shifting the dominant frequencies in your input signal by the various intervals in the harmonic series (octave, octave+fifth, two octaves, two octaves+major third etc). These harmonics can be mixed with the dry input signal to make it more resonant, or used on their own as a new sound.
  • LengthSeparator – bisects the input signal according to the lengths of its component frequencies. Short sounds become the ‘transient’ part, long sounds become the ‘stable’ part. These parts can be isolated (ie the other part removed), or assigned different pan positions to create stereo movement.
  • Convoluter – applies a convolution matrix to the spectral representation of the input signal. This bends the sound along the continuum between pure sine tones and pure noise.
  • GeoSynth - a vst instrument made several years ago, but never released – I wasn’t as excited as I’d hoped about the sounds it made. But it’s here now so you can judge for yourself. There’s no doubting that it’s a great idea, whether the sounds light your candle or not.
  • SwarmSynth - a vst instrument which uses a flocking algorithm to control a bank of oscillators as they move through an envelope-constrained 5 dimensional parametric hyperspace.


  • Tweakbench - free VST instruments and free VST effects

Listings


  • KVR Audio is a community and news site for popular Audio Plug-in formats and related subjects, such as sample libraries and mobile apps. Our mission is to supply up to date news to VST, AU, RTAS, DX and DSSI/LADSPA plug-in and iOS and Android App users in a friendly, up-front and timely manner.


Audio looping

SooperLooper

  • SooperLooper is a live looping sampler capable of immediate loop recording, overdubbing, multiplying, reversing and more. It allows for multiple simultaneous multi-channel loops limited only by your computer's available memory. The application is a standalone JACK client with an engine controllable via OSC and MIDI. It also includes a GUI which communicates with the engine via OSC (even over a network) for user-friendly control on a desktop. However, this kind of live performance looping tool is most effectively used via hardware (midi footpedals, etc) and the engine can be run standalone on a computer without a monitor.


Cyclone

  • Cyclone is a music application for GNU/Linux that allows users to manipulate loops in various ways. It works with professional audio formats like .wav .aif .flac, and professional audio environment (Jack Audio Connection Kit).

Clicky interface, MIDI learn, can use Sooperlooper.


Luppp

  • Luppp - a music creation tool, intended for live use. The focus is on real time processing and a fast intuitive workflow. With extensive MIDI mapping support, you can get looping just how you like!

SuperBoucle

  • SuperBoucle - a loop based software fully controllable with any midi device. SuperBoucle is also synced with jack transport. You can use it on live performance or for composition. SuperBoucle is composed of a matrix of sample controllable with external midi device like pad. SuperBoucle will send back information to midi device (light up led). Sample will always start and stop on a beat or group of beats. You can adjust duration of sample (loop period) in beat and offset in beat. But you can also adjust sample offset in raw frame count negative or positive. Which mean sample can start before next beat (useful for reversed sample). You can record loop of any size, adjust BPM, reverse, normalize samples..

Cannot create samples live.

Freewheeling

Your XML config files could 'react' to the pressing of a key on your PC or MIDI keyboard by pressing one or more other MIDI or PC 'keys' for you using the key Input Events you can trigger a series of MIDI controller changes when a QWERTY key is pressed.


loopidity

beta??

Recursion Looper

  • Recursion Looper - a PD(Pure Data) patch designed for live music performance. 8 loop tracks

Track effects: reverb, bitcrush, filter. Master effects: filter, 3 band EQ. customizable MIDI control of volume, pan, effects, record and play, etc.

Instalooper

  • Insta Looper - a simple looper with four integrated FX! Multiplatform VST. Bit Reducer, Autopan, Hipass and Phaser.


LoopDub

  • LoopDub - a cross-platform audio application for live loop manipulation.

No live recording.


ClockLoop

  • ClockLoop - a very simple JACK application for playing back audio loops. MIDI control.


kluppe

  • kluppe - a loop-player and recorder, designed for live use. kluppe is open source. kluppe does not sound nor look like microsofttm excel#!&© kluppe is the austrian word for clip or peg and sounds even crazier if you loop it. kluppe can only handle uncompressed sound. kluppe is optimized for live-performances, all buffers are kept as raw data in memory. discstream is also available for longer files.

No MIDI control.

Loopcenter

  • Loopcenter - a program I wrote basically as a music-practicing tool. I didn't want to shell out for a Boss Loop Station guitar pedal, and I figured I could achieve the same functionality pretty easily with a simple program. Loopcenter lets you simply record loops for any audio you route to it (via JACK), and it plays it back in a loop. You can overdub the loop as well. Every recording is rounded to the nearest measure. Accordingly, you can adjust the beats per measure, and the tempo.

No MIDI control.


Mnemonica

  • Mnemonica - a customized sampler instrument you can play with a two octave Midi keyboard. All the white keys in the octave below middle C are used to start and stop recording into the 7 discrete samplers. With your right hand, the white keys in the octave beginning at middle C are used to playback captured samples. Transposing, filtering, and attack and decay envelopes are controlled with various other assignable Midi controllers. Windows/Mac

Livid Looper

Mobius

  • Mobius - software for the real-time creation of audio loops. It was inspired by the venerable hardware loopers of the past, but moves beyond them in many powerful and exciting ways. You can think of Mobius as 8 synchronized stereo loopers that can be used in any combination with extensive MIDI and computer keyboard control. Loops may be saved to and loaded from files. A powerful scripting language allows you to create macros or customize Mobius to support your unique style of performance.

Mobius is available for both Windows (XP and Vista) and OS X (10.4 or higher). It can be run standalone, as a VST plugin, or as an Audio Unit plugin on OS X.

Can't get working..

Cycler Looper

dead and gone?

Beat slicing

Tranches

  • Tranches - a midi-controlled multi-(inputs/outputs) live beat repeat/rearrange/redirect tool !!! It works on Gnu/Linux with the Jack sound server. There's a command-line and a gui version. It is released under the GNU General Public Licence.

beatslash-lv2

  • beatslash-lv2 is a set of plugins for live beat repeating and beat slicing. the beat repeater will repeat the current beat. the beat slicer will randomly repeat parts of a live sample.

SuperBeatRepeater

StreamSequencer


manic

  • manic - an 8 slot random sample player where you decide the samples, but manic decides when to play them. Samples are triggered according to their probability, on a tempo sync pattern. Also allows for randomising of volume, pitch, pan, delay, reverse and swing. You decide how much, but not when. You can loop the sequence, change sequence seed with midi keys and quantise the pitch randomising for a more melodic sequence. Works well for random glitchy percussion, instant melodic sequences of multisamples or total chaos. Windows VST.


Shuriken

  • Shuriken is an open source beat slicer which harnesses the power of aubio's onset detection algorithms and Rubber Band's time stretching capabilities. A simple Qt4 interface makes it easy to slice up drum loops, assign individual drum hits to MIDI keys, and change the tempo of loops in real-time. The JUCE library takes care of handling audio and MIDI behind the scenes. No mp3 support currently.

Freecycle

  • Freecycle - Freecycle is a beat slicer running on GNU/Linux platform using the QT toolkit, providing amplitude domain and frequency domain beat matching / zero crossing algorithms. It exports sliced audio chunks and generates a MIDI file which can be used to play the sliced loop, or you can jam with it as soon as you’ve made slices using a midi keyboard or sequencer.

Smasher

  • Smasher - cross-platform audio loop slicer designed to create sliced loops from WAV, MP3, FLAC or AIFF files in seconds without a sequencer. Effects include filter sweeps, phasing, flanging, delay, and distortion.

No MIDI. Needs pd, csound to build. Also a specific build of wxgtk2 [66]

LoopAuditioneer

  • LoopAuditioneer - a software for evaluating, creating and manipulating loops and cues existing in wav file metadata. It's envisioned to be useful for sample production for virtual pipe organs, like for instance GrandOrgue software.

Beat mashing

bocule

DANAIDES

  • DANAIDES - Sequenced Sound Mangler. OS X, Windows and Linux. Freeware now.

Glitch

LiveCut

Granular

Loomer Cumulus

  • Loomer Cumulus is a granular sampler which radically transforms sample content by breaking it into tiny slithers of audio called grains and reorganizing them to form new sounds. Cumulus is capable of a wide ranges of timbres: from evolving atmospheric soundscapes; to organic physical textures. Up to eight Scenes can be created; a Scene corresponding to a particular sample position and set of synthesis parameters. Scenes can be played in realtime via MIDI, or arranged internally using the built-in sequencer. Cumulus is available free on the cover-mounted DVD of Computer Music magazine from issue 170 and onwards. Cumulus is supported on Mac OS X (VST, AU, RTAS, and Standalone), Windows (VST, RTAS, and Standalone), and Linux (VST, Standalone), and natively supports 64-bit for VST, Audio Unit, and Linux Standalone formats.

Argotlunar

  • Argotlunar is a tool for creating surreal transformations of audio streams. Specifically, it is a real-time delay-line granulator. It disintegrates an audio stream into short samples (grains). Each grain can have random settings of amplitude, panning, duration, delay, pitch, glissando, filter and envelope. The output of all grains is mixed together into a stream which can be fed back into the main input. Time-related parameters can be synced to the host tempo, for rhythmic and pulsing textures. Pitch-related parameters can be quantized for harmonic and melodic effects. Feedback can create chaotic, densely layered, and distorted sounds.

Atomic Cloud Grain Cloud Generator

  • Atomic Cloud Grain Cloud Generator takes an audio file as input, and generates a granular synthesis grain cloud in real time. Grain clouds are played back through your speakers, and can also be rendered direct to disk, while you listen, for further processing.


Soundgrain

  • Soundgrain is a graphical interface where users can draw and edit trajectories to control granular sound synthesis. Soundgrain is written with Python/WxPython and uses Pyo as its audio engine.

Slicer

  • Slicer - allows you to create rhythms and textures from any sound you import by moving the Slicer nodes. Slicer will chop your sound into slices and superpose them. The slices will be created and manipulated acording to the position of the control nodes (the ones represented by a square). The slicer nodes (in color) control volume (vertical) and pan(horizontal) of each slice, while the control nodes control pitch, lenght, shift and starting point for all the slices.

Narrativas Sonoras

  • Narrativas Sonoras is a very simple audio granulator. Its original design dates back to end of 2006. for Macintosh, for Windows, for Linux or the source code. It is based on Processing and you might need to install a recent version of Java.

Borderlands

R_MEM

  • R_MEM - Granulator. The download contains the unlocked installers. OS X and Windows.

Granny

  • Granny - a real-time granular synthesizer for Windows.

therapy

  • therapy - 3 band granulizer effect with absolutely no ability to deliberately control any parameter. Windows VST.

Notation software

Common Music Notation

MuseScore

  • MuseScore - Music notation and composition software. Features: WYSIWYG design, notes are entered on a "virtual notepaper", TrueType font(s) for printing & display allows for high quality scaling to all sizes, easy & fast note entry, many editing functions, MusicXML import/export, Midi (SMF) import/export, MuseData import, Midi input for note entry, integrated sequencer and software synthesizer to play the score, print or create pdf files

LilyPond

  • Frescobaldi is a LilyPond sheet music text editor. It aims to be powerful, yet lightweight and easy to use. Frescobaldi is Free Software, freely available under the General Public License.
  • Denemo is a free music notation program for GNU/Linux, Mac OSX and Windows that lets you rapidly enter notation which it typesets using the LilyPond music engraver. Music can be typed in at the PC-Keyboard (watch demo), or played in via MIDI controller (watch demo), or input acoustically into a microphone plugged into your computer’s soundcard.
  • Rumor is a realtime monophonic (with chords) MIDI keyboard to Lilypond converter. It receives MIDI events, quantizes them according to its metronome on the fly and outputs handwritten-like corresponding Lilypond notation. Tempo, meter, key and other parameters can be set via command-line options.

Music Suite

Kern

to sort






  • Helio is a lightweight cross-platform music sketchup tool, available for Mac OS X, Linux, Windows desktops, iPads and Android tablets. Developed by musician with the dream of a perfect speed-painting playground, it features high performance C++ core, linear-based sequencer with clean UI, integrated version control and more.
  • Nootka is an application to learn classical score notation. It helps to understand the rules of reading and writing scores and helps with developing skills of playing and singing notes. The application is free and open source. It works under Windows, Linux, MacOs and Android.





  • Guido Engine Library is a generic, portable library and API for the graphical rendering of musical scores. The library is based on the GUIDO Music Notation Format as the underlying data format. It takes account of the conventional music notation system and should be flexible enough to include any graphical sign and musical information if necessary.



  • Mup - a program for printing music. It takes an input file containing ordinary (ASCII) text describing music, and produces PostScript output for printing the musical score described by the input.

ABC

Service

Notation data formats

See also Music#Notation

Music Macro Language

NSF

  • http://wiki.nesdev.com/w/index.php/NSF - NES Sound Format (.nsf) is used for storing and playing music from the NES and related systems. It is similar to the PSID file format for C64 music/sound, where one rips the music/sound code from an NES game and prepends a small header to the data. An NSF player puts the music code into memory at the proper place, based on the header, prepares sound hardware, then runs it to make music. An NSF can be played on NES/Famicom hardware or in an emulator (NSF player or NES emulator).

MOD

  • https://en.wikipedia.org/wiki/MOD_(file_format) - a computer file format used primarily to represent music, and was the first module file format. MOD files use the “.MOD” file extension, except on the Amiga where the original trackers instead use a “mod.” prefix scheme, e.g. “mod.echoing”. A MOD file contains a set of instruments in the form of samples, a number of patterns indicating how and when the samples are to be played, and a list of what patterns to play in what order.
  • https://en.wikipedia.org/wiki/XM_(file_format) - standing for "extended module", is an audio file type introduced by Triton's FastTracker 2. XM introduced multisampling-capable instruments with volume and panning envelopes, and basic pattern compression. It also expanded the available effect commands and channels, added 16-bit sample support, and offered an alternative frequency table for portamentos. XM is a common format for many chiptunes.
  • UADE plays old Amiga tunes through UAE emulation and cloned m68k-assembler Eagleplayer API.

MIDI

See #MIDI

ABC

MusicXML

Music Markup Language

GUIDO / GMN

MEI

Structured audio

SDIF

MIDI


  • https://en.wikipedia.org/wiki/MIDI - short for Musical Instrument Digital Interface) is a technical standard that describes a protocol, digital interface and connectors and allows a wide variety of electronic musical instruments, computers and other related devices to connect and communicate with one another. A single MIDI link can carry up to sixteen channels of information, each of which can be routed to a separate device.

MIDI carries event messages that specify notation, pitch and velocity, control signals for parameters such as volume, vibrato, audio panning, cues, and clock signals that set and synchronize tempo between multiple devices. These messages are sent via a MIDI cable to other devices where they control sound generation and other features. This data can also be recorded into a hardware or software device called a sequencer, which can be used to edit the data and to play it back at a later time 4 Advantages of MIDI include compactness (an entire song can be coded in a few hundred lines, i.e. in a few kilobytes), ease of modification and manipulation and choice of instruments.

Guides

  • YouTube: The Basics of MIDI - Presented by Alesis (1991). Featuring Craig Anderton with Steve Smythe. This is an instructional video that was made in 1991 to help musicians better understand how MIDI (Musical Instrument Digital Interface) works. You won't find any computer monitors, software plugins or DAW's in this video. Most MIDI configurations back in the day were point-to-point device communication. However, many of these basic MIDI concepts still remain today.




Articles



Specifications







  • The MIDI Specification is published by the MIDI Manufacturer's Association, ie, MMA (although this online document gives you the same information for free, in easier-to-understand language, and in many cases, with even more detail than the official document).

MIDI is an asynchronous serial interface. The baud rate is 31.25 Kbaud (+/- 1%). There is 1 start bit, 8 data bits, and 1 stop bit (ie, 10 bits total), for a period of 320 microseconds per serial byte. The MIDI circuit is current loop, 5 mA. Logic 0 is current ON. One output drives one (and only one) input. To avoid grounding loops and subsequent data errors, the input is opto-isolated. It requires less than 5 mA to turn on. The Sharp PC-900 and HP 6N138 optoisolators are satisfactory devices. Rise and fall time for the optoisolator should be less than 2 microseconds.

The standard connector used for MIDI is a 5 pin DIN. Separate jacks (and cable runs) are used for input and output, clearly marked on a given device (ie, the MIDI IN and OUT are two separate DIN female panel mount jacks). 50 feet is the recommended maximum cable length. Cables are shielded twisted pair, with the shield connecting pin 2 at both ends. The pair is pins 4 and 5. Pins 1 and 3 are not used, and should be left unconnected.

A device may also be equipped with a MIDI THRU jack which is used to pass the MIDI IN signal to another device. The MIDI THRU transmission may not be performed correctly due to the delay time (caused by the response time of the opto-isolator) between the rising and falling edges of the square wave. These timing errors will tend to add in the "wrong direction" as more devices are daisy-chained to other device's MIDI THRU jacks. The result is that there is a limit to the number of devices that can be daisy-chained.


Time

  • https://en.wikipedia.org/wiki/MIDI_timecode - (MTC), or MIDI time division, embeds the same timing information as standard SMPTE timecode as a series of small 'quarter-frame' MIDI messages. MTC allows the synchronisation of a sequencer or DAW with other devices that can synchronise to MTC or for these devices to 'slave' to a tape machine that is striped with SMPTE. For this to happen a SMPTE to MTC converter needs to be employed.
  • https://en.wikipedia.org/wiki/MIDI_beat_clock - also known as MIDI timing clock or simply MIDI clock, is a clock signal that is broadcast via MIDI to ensure that several MIDI-enabled devices such as a synthesizer or music sequencer stay in synchronization. Unlike MIDI timecode, the MIDI beat clock is tempo-dependent. Clock events are sent at a rate of 24 ppqn (pulses per quarter note). Those pulses are used to maintain a synchronized tempo for synthesizers that have BPM-dependent voices and also for arpeggiator synchronization. It does not transmit any location information (bar number or time code) and so must be used in conjunction with a positional reference (such as timecode) for complete sync. Because of limitations in MIDI and synthesizers, devices driven by MIDI beatclock are often subject to clock drift. For this reason, it is a common practice on equipment that supports another clock source such as ADAT or wordclock to use both that source and MIDI beatclock.

"In MIDI notes are measured in pulses rather than in time. The note start time and duration will be a discrete number of pulses. Pulses per quarter note can be found in the header part of the MIDI file and specifies how many midi pulses make up one quarter note. This is useful for determining note values - if the current PPQN is 96 and a note's duration is 48 we know that it's a quaver. It's also vital for determining the rate at which the MIDI file should be played. The tempo tells us how long each pulse should last. The BPM measures how many quarter notes happen in a minute. To work out the length of each pulse we can use the following formula: Pulse Length = 60/(BPM * PPQN)"


Continuous Controllers

A MIDI continuous controller command consists of the MIDI controller command followed by two data bytes that specify the controller number and the controller's value:

  0xb0 | channel = MIDI continuous controller command
  0 .. 127       = MIDI continuous controller number
  0 .. 127       = MIDI continuous controller value


"I tend to favor using 74 (filter cutoff) , 71 (Resonance) 91 (Reverb) and 93 (Chorus) as these are widely adopted by many hardware and software synths."


Undefined CCs: 3, 9, 14-15, 20-31, 85-90, 102-119


MMC

  • https://en.wikipedia.org/wiki/MIDI_Machine_Control - MMC, a subset of the MIDI specification, provides specific commands for controlling recording equipment such as multi-track recorders. MMC messages can be sent along a standard MIDI cable for remote control of such functions as Play, Fast Forward, Rewind, Stop, Pause, and Record. These are "System Exclusive" (SysEx) messages, specifically Real Time Universal SysEx messages.

General MIDI

  • https://en.wikipedia.org/wiki/General_MIDI - or GM is a standardized specification for music synthesizers that respond to MIDI messages. GM was developed by the American MIDI Manufacturers Association (MMA) and the Japan MIDI Standards Committee (JMSC) and first published in 1991.

While MIDI 1.0 by itself provides a communications protocol which ensures that different instruments can interoperate at a fundamental level (e.g., that pressing keys on a MIDI keyboard will cause an attached MIDI sound module to play musical notes), GM goes further in two ways: it requires that all GM-compatible synthesizers meet a certain minimal set of features, such as being able to play at least 24 notes simultaneously (polyphony), and it attaches specific interpretations to many parameters and control messages which were left under-specified in the MIDI 1.0 spec, such as defining instrument sounds for each of the 128 possible program numbers.

SysEx

  • https://github.com/polluxsynth/xtor - an editor for MIDI synthesizers (or indeed any MIDI device), currently configured (solely) for the Waldorf Blofeld. If offers two way communication of both single parameter changes as well as complete patch dumps, thus both operating as a visualization as well as graphical editor.

Hardware

to sort/move



  • https://github.com/openAVproductions/openAV-Ctlra - a plain C library that supports easily programming with hardware controllers like USB HID devices. Recently controllers have become much more powerful and feature-rich devices, resulting in tight integration between software and hardware controllers. This places a burden on software developers, who must support individual devices. This library makes it easier to access these powerful hardware control surfaces trough a simple API, which exposes buttons, encoders, sliders, and a grid as components of the controller device. The details of the USB HID protocol, and the implementation of the device communication are abstracted.


Routing

Synth module


  • World's Smallest MIDI Synthesizer - It's essentially the same circuit as my synthesizer cable and running the same code. It saps power from the midi signal and outputs sound on a little piezo buzzer. [69]

Instrument

Yamaha DJX:


  • Drumroll - allows to play Dream Cheeky USB Roll Up Drum Kit on Linux

Trigger


  • MegaDrum - a very powerful yet affordable MIDI drum trigger. It can be used with many varieties of Edrum kits/pads/cymbals and outputs MIDI signals which can be fed to a computer with drum sampling software,e.g. BFD, Toontrack, Addictive Drums, to produce wide variety of drum sounds or it can be connected to a drum machine. It can be compared with Roland TMC-6 but with more inputs and more capabilities. MegaDrum started as DIY project and over time evolved into a a versatile device which can be ordered as a complete module, kit or you can still build it yourself. MegaDrum is fully plug-n-play and is USB MIDI Class Compliant, i.e. will work with Windows, Mac OS X, Linux without additional drivers!


  • MidiSizer - Peter Kvitek’s DIY projects webpage. Mostly related to MIDI and Synthesizers at this point. MidiALF, MidiREX, MidiGAL, MidiThru, Midi2CV, etc.


  • ECE 4760 - deals with microcontrollers as components in electronic design and embedded control. The course is taught by Bruce Land, who is a staff member in Electrical and Computer Engineering. The course is taught using PIC32 processors.
[70]


Projects

MidiBOX
  • uCApps.de - Non-commercial DIY Projects for MIDI Hardware Geeks
    • MIDIbox SEQ V4 - 16 Track Live Step and Morph Sequencer + advanced Arpeggiator


  • MIDIbox.org Blog - News about MIDIbox Projects
  • MIDIbox Knowledge Base - MIDIbox DIY-projects consist of hardware (MBHP) and software (MIOS + Application). Some projects have special designed modules, others only require a Core module. If you have problems understanding the structure of a MIDIbox, just think of your PC: Processor ⇒ PIC18F, Mainboard ⇒ Core Module, Keyboard ⇒ DIN Module, Soundcard ⇒ FM (OPL3) or SID Module

Graphics Card ⇒ DOUT Module (with connected LEDs), Display ⇒ LCD Module (Liquid Crysal Display), BIOS ⇒ the Bootloader, Operating Sytem (Windows, Linux, Macintosh) ⇒ MIOS.hex (MIDIbox Operating System), The application you work with ⇒ for example MB64e.hex, MBSID.hex, MBSeq.hex


midipal
Axoloti
Raspberry Pi
Arduino
  • Arduino: MIDI Device - This tutorial shows how ho use the 'Native USB port of an Arduino or Genuino Zero, DUE or 101 board as a MIDI device using the Arduino MIDI USB library. The library can be installed using the arduino library manager.


Controllers


Want: channel faders, mixer fader, buttons, pots. No keys.




  • usbpiano - Linux ALSA MIDI driver for Dream Cheeky/Dream Link USB Roll-Up Piano
    • worked for me: gcc usbpiano.c -o usbpiano -lusb -lasound # compiled program might need to be run as root



  • https://zaqaudio.com/ - Zaquencer - custom firmware for the Behringer BCR2000 that will turn it into a standalone

MIDI step sequencer.



Korg nanoKONTROL2



"The LED will light-up or go dark when a message with the control change number or note number that’s assigned to that button is received from the computer. The LED will light-up when an On Value or Note On message is received, and will go dark when an Off Value or Note Off message is received. Don’t forget to set LED mode to external via the Korg software"


monome


Faderfox


Nibbletronic


Ctrlr

  • Ctrlr - Control any MIDI enabled hardware: synthesizers, drum machines, samplers, effects. Create custom User Interfaces. Host them as VST or AU plugins in your favorite DAWs.

miditouch

  • linux-miditouch - The miditouch application was developed for graphic tablets able to generate touch events. Touch events are converted in midi "note on" and "note off" events. The application is by default configured for the Bamboo Touch 2FG low-cost tablet.

ALSA

aconnect -i
  # list MIDI input devices

aconnect -o
  # list MIDI output devices
aseqdump -p ##
  # detect events from keyboard number ##


Hardware





Raw MIDI

  • http://linux.die.net/man/1/amidi - amidi is a raw MIDI command-line utility which allows to receive and send SysEx (system exclusive) data from/to external MIDI devices. It can also send any other MIDI commands. amidi handles only files containing raw MIDI commands, without timing information. amidi does not support Standard MIDI (.mid) files.

Sequencer MIDI

The ALSA sequencer interface is designed to deliver the MIDI-like events between clients/ports. A typical usage is the MIDI patch-bay. A MIDI application can be connected arbitrarily from/to the other MIDI clients. The routing between clients can be changed dynamically, so the application can handle incoming or outgoing MIDI events regardless of the devices or the application connections.

The sequencer core stuff only takes care of two things: scheduling events and dispatching them to the destination at the right time. All processing of MIDI events has to be done within the clients. The event can be dispatched immediately without queueing, too. The event scheduling can be done either on a MIDI tempo queue or on a wallclock-time queue.


modprobe snd-seq-dummy
  # provides virtual 'MIDI Through' loopback port. on by default.

sudo rmmod snd_seq_dummy
  # disable dummy kernel module. doesn't work after boot?

/etc/modprobe.d/alsa-midi-through.conf:

options snd-seq-dummy ports=16
  # for extra MIDI Through ports
snd-virmidi driver - convert between ALSA sequencer ports and old OSS raw midi ports
  # enable 

Utils

to resort


  • arecordmidi is a command-line utility that records a Standard MIDI File from one or more ALSA sequencer ports. To stop recording, press Ctrl+C.


  • KASEQ ALSA MIDI Kommander is a DCOP interface (inter-process communication daemon used in KDE 3) exposing many ALSA Sequencer features for shell scripts, Kommander scripts, or KDE programs requiring MIDI Sequencer services. A few MIDI utilities have been developed with this tool, which can be used both as programming examples and as real work tools. It depends on KDE 3.x and the Qt library.
  • MidiOSC is a small program to bridge the worlds of MIDI and OSC by providing bidirectional conversion of MIDI to OSC. Released under the GPLv2 license.




  • https://github.com/cirlabs/miditime - MIDITime converts any kind of time series data into pitch, attack and duration values based on musical options that you set up, then outputs a .mid file.
  • jsmidgen - (pronounced jay-smidgen or jer-smidgen) is a library that can be used to generate MIDI files in JavaScript. It currently provides output as a string, but there are plans to provide multiple output formats, including base64 and data URI.


  • Improvisor is a MIDI sequencer application which plays back multiple step sequences with up to 64 steps in length. Each sequence is entered using velocity and semitone patterns, relative to a root note. Semitone patterns can be played back using different velocity patterns or the other way around. Semitone patterns can follow each other, which means they will add to each other's relative semitone steps. By drawing your own semitone and velocity patterns, and making patterns follow each other, you can create completely new melodies, which you didn't imagine before!
  • EVOLVOR is a MIDI application which generates LFO (low frequency oscillator) envelopes, and which it sends via MIDI to any hardware or software synthesizer or sound effect connected to your computer. Not open, dead.
  • BallSequencer is a sequencer VSTi based around the idea of MIDI messages being generated by balls moving around inside a rectangular area. Notes are triggered whenever a ball collides with the boundary of the rectangle. You can set parameters that will control the movement of each ball, in addition to possible note and velocity values.




  • Midipus is an intelligent MIDI switch. One bidirectional ALSA sequencer connection (the head) is switched between multiple bidirectional outputs (the arms) by special, out of band messages. Data arriving on inactive arms is analyzed, compressed, and relayed to the head upon switching. This allows, for instance, a single BCF2000 to control Ardour, envy24control, Rosegarden, ZynAddSubFX and FreeWheeling at once in a paged, exclusive fashion; without any undesirable interaction between clients and without the BCF and the clients' parameter values drifting out of sync. It also eliminates the need to create many complex presets on the BCF, or ensure that different presets avoid mapping the same parameters. Multiple ALSA sequencer clients may be subscribed to an arm, allowing one to, say, control Ardour's mixer with faders while controlling amSynth's parameters with rotary encoders, but still allow switching to exclusive envy24control access, even if they utilize some of the same controller numbers. Midipus should work with any client software--even conventional MIDI mappers--, and with any sufficiently capable MIDI controller. I only mention the BCF2000 because it's the hardware I own. The Midipus code itself is mostly device neutral.


  • ASSPatch is an ALSA Sequencer subscription management daemon. This third-party application automates virtual MIDI connections in your Linux studio. Several graphical patchbays and connection editors exist for the ALSA Sequencer interface. Unfortunately, all suffer from some serious practical limitations--such as insanely complex XML patchbay definitions, lack of working snapshot capability, inability to create common subscription types, and general brain damage.


  • FTAP is a Linux-based program (written by Steve Finney) for tapping and music performance experiments. It connects to a standard MIDI input device (e.g., a keyboard or drum pad) for collecting MIDI keystroke data, and sends MIDI signals to a MIDI tone generator or sampler for audio output; MIDI messages are processed with millisecond accuracy and precision. FTAP is described in an article in Behavior Research Methods, Instruments, and Computers (Finney, S.A. (2001a), " FTAP: A Linux-based program for tapping and music experiments", v 33, pp 65-72).

Control

  • MIDI-utils - This is a set (one for now) of useful MIDI-translation tools for Linux-based Digital Audio Workstations. These tools are mainly simplistic hacks but they do come in handy in some cases. midi2midi - A simple program that translates input MIDI-notes into other MIDI-notes or MIDI CC messages to other MIDI CC messages or even MIDI-notes into Jack Transport commands using small configuration files. The whole purpose for this program being written is that basically all MIDI equipment (at least the ones I own) have their own little quirks. This is just a way to circumvent these quirks.

Hardware

to resort

  • ttymidi - a GPL-licensed program that allows external serial devices to interface with ALSA MIDI applications. The main motivation behind ttymidi was to make Arduino boards talk to MIDI applications without the need to use (or build) any extra hardware.


  • Linux pSeudo MIDI Input - simple user-space drivers support using certain homemade, repurposed, or commercial devices as MIDI controllers on Linux. ps/2 keyboard, joystick, mouse, monterey keyboard. ALSA.
  • Kbdz (KeyboardZ) is a realtime events framework, dedicated to audio. A daemon (background app) that turns your PC keyboards/mice into MIDI controllers. Uses ALSA Sequencer interface, allowing one to tranform linux event devices to midi controller, to perform transformation (mapping) on the events.



  • https://github.com/noedigcode/keytarboard - A small app that translates keyboard presses into Jack MIDI notes. The keyboard is mapped like a guitar, with Shift, Caps Lock, Tab and ` being the open fret notes (E, A, D and G, respectively).


  • Webcam MIDI - a cross-platform open source application that lets the user play virtual instruments in front of a webcam. It is used as a MIDI controller together with a synthesizer.

Mouse / trackpad

  • Ratón translates mouse movements into MIDI controller messages. Those movements are mapped through a user-defineable curve, which can change the characteristics of the mouse's location. Changing the curve can then expand, contract or step the controller messages to match the specific purpose. Ratón uses the ALSA sequencer MIDI interface, so audio apps such as JACK-rack, MuSE or Rosegarden can use it's controller stream.
  • Kontroll - a small utility that generates midi cc messages from the mouse position. It is inspired by the MouseX and MouseY UGens in Supercollider. It simply creates an alsa sequencer port which you can then connect with your favourite patchbay. The mouse position is independent of window focus and is relative to the screen origin at the upper left.


Game controller

  • aseqjoy is a Joystick to ALSA MIDI Sequencer Converter. In fact it’s a really tiny piece of software that turns a joystick into a MIDI controller for the ALSA sequencer infrastructure. Its original purpose was to test the MIDI interface of terminatorX but that turned out to be fun, so it made it here in the hope that it could be useful for other experiments.
  • Rejoystick - a program that maps keypresses on your gamepad/joypad/joystick to keypresses on a keyboard when you are running X. Since it uses SDL to communicate with the gamepad device, it can work on every platform that provides SDL and an X environment. (Though it is yet to be tested on Cygwin e.g.)
  • Midi Toys - Thumb mixer works with a playstation 2 style controller, a study in user interaction.


Virtual keyboard

  • Virtual MIDI Piano Keyboard is a MIDI events generator and receiver. It doesn't produce any sound by itself, but can be used to drive a MIDI synthesizer (either hardware or software, internal or external). You can use the computer's keyboard to play MIDI notes, and also the mouse. You can use the Virtual MIDI Piano Keyboard to display the played MIDI notes from another instrument or MIDI file player. To do so, connect the other MIDI port to the input port of VMPK.
  • Klaviatur - A simple keyboard plugin with a MIDI output port. Useful for testing synth plugins or patches when you don't have a real keyboard nearby.
  • Virtual Keyboard (Vkeybd) - This program is originally for AWE32/64 driver on OSS/Free, but it works now on ALSA, too. Start the program with --device alsa option. Then, connect this client to any ALSA port by aconnect utility,


  • jack-keyboard is a virtual MIDI keyboard - a program that allows you to send JACK MIDI events (play ;-) using your PC keyboard. It's somewhat similar to vkeybd, except it uses JACK MIDI instead of ALSA, and the default keyboard mapping is much better - it uses the same layout as trackers (like Impulse Tracker) did, so you have two and half octaves under your fingers.


Software controls

  • midicontrol - a small program that lets you set MIDI controller values using sliders and buttons in a GTK+ window. The GUI is an XML-based Glade file which can be replaced without rebuilding the program, so you can build your own controller GUIs in Glade.
  • MIDI Controller - a small program that lets you set MIDI controller values using sliders and buttons in a GTK+ window. The GUI is an XML-based Glade file which can be replaced without rebuilding the program, so you can build your own controller GUIs in Glade.
  • xphat - a MIDI slider box for Linux/X. Each slider can emit any MIDI message (except Active Sense). Most of the modes for each slider feature a well-defined MIDI message type (such as Note On, Controller N, Pitch Bend, etc.) which contain one parameter which can be varied by moving the slider. One exception to this is "Sysex" mode, which allows a slider to be programmed with an arbitary sequence of bytes, including parameters that can be altered.


  • PIZ midiPads - 1 to 64 buttons/sliders/XY-pads that send learnable midi messages, with resizable GUI. Very configurable. Each pad can optionally show an svg/png/jpg/gif image (drag & drop to load images).


  • KHAGAN — Widgets of Dominance


  • Midiball - a simple standalone musical application for Linux to generate midi events from the motion of a virtual ball. It uses Qt and ALSA midi API. It can be also used with the jack daemon.


  • Accordion - Accordion emulation written in C. Uses PC keyboard and space bar to emulate a three row button accordion. There is a choice of midi instruments and keys, now including C System and B System. A Windows and a Mac version have been released. Now including bass. The 12 bass buttons play uni-sonic bass notes for B/C/C#, C System and B System.
  • Melodeon - Melodeon/accordion emulation written in C. Uses PC keyboard function keys and space bar to emulate a one row melodeon with bass. There is a choice of midi instruments, keys and button layout. Windows, Linux and Mac versions have been released. The bass works on the linux version, but using it can cause strange things to happen,


  • showq - MIDI controlled theatre cue player that can play audio or trigger MIDI events. Applicaton can be controlled by midi. It can play through alsa or through Jack Audio Connection Kit.
  • Linux Show Player - or LiSP for short, a free cue player designed for sound-playback in stage production. The goal of the project is to provide a complete playback software for musical plays, theater shows and similar.


  • http://ruipenha.pt/beatings/ - a web application for the exploration of tuning and temperaments which pays particular attention to auditory phenomena resulting from the interaction of the spectral components of a sound.The aim is to foster new research in the pursuit of perceptually grounded principles explaining voice leading, as well as provide a tool for musical practice and education, areas where the old art of musical tunings and temperaments, with the notable exception of early music studies, appears to have long been neglected in favour of the practical advantages of equal temperament.



Microtonal

  • Relayer - enables musicians who play the AXiS-49, the QWERTY computer keyboard, the Thummer, or any MIDI controller, to play in a wide variety of isomorphic note layouts and tunings using either a Dynamic Tonality synth or a standard multitimbral synth.

Audio to MIDI



  • Mic2Midi - Whistle / Hum / Sing into a microphone, generate MIDI signals to drive a sequencer
./main.py <input url> <output url>
./main.py alsa:// rtmidi://0
./main.py file://song.wav file://song.mid


  • Midingsolo - aims to do a real-time audio note recognition software for monophonic signals (like solos). The input must be a monophonic wave signal (only one voice, with one melodic instrument). The result are MIDI events launched trough the ALSA sequencer. (recognized notes are printed to the standard output too)
  • http://subpixels.com/processing/spxlAudioToMidi/ - small application made with Processing to produce MIDI control messages from a live audio feed. Auto-levelling frequency band meters are used to obtain "peak" output values across the entire audio spectrum analysed (whereas it is usual to have strong bass response with weaker treble response), and easing is applied to make the levels less erratic. In addition to tracking the high values, low values are tracked and the output range is maximised to span the low to high range. 10 separate monitor outputs are supplied, where each monitor is attached to one of the frequency band meters and that meter's output is scaled to the particular output range for the monitor, allowing for a reduced final output range as well as inverted ranges. Controls are provided to select the MIDI output device and the MIDI channel to use, as well as for selecting which monitors are connected to which meters and the monitor output ranges. v10 windows only, v04 - linux, mac


  • WaoN is a Wave-to-Notes transcriber, that is, the inverse of 'timidity' (and its descendants timidity++, and timidity with Gtk+). "WaoN" also has a meaning of harmony of notes or chord in Japanese! My original intention is to pick up voicing of harmony from sound of my favorite pianists.

Video to MIDI

MIDI to text

  • midicomp will both read and write SMF files in 0 or format 1 and also read and write it's own plain text format. This means a SMF file can be turned into easily parseble text, edited with any text editor or filtered through any script language, and "recompiled" back into a binary SMF file.
  • Midi2Text (fork) extracts data from a MIDI file into a tab-delimited text file. The file contains BPM, time signature, information about each note, etc. The text file can then be read into other applications, such as a spreadsheet or game.


  • midicvt - This project supports MIDI-to-text-to-MIDI conversions like midicomp and midi2text (it is derived from those projects), and adds support for direct MIDI-to-MIDI conversions driven by an INI file, using a C++ add-on. The C++ project can also transform the patch numbers of files, converting the to General MIDI (GM) format, for example.

Monitoring

amidi

amidi -l

 Dir Device    Name
 IO  hw:0,0    M Audio Audiophile 24/96 MIDI
 IO  hw:2,0,0  E-MU Xboard25 MIDI 1

amidi -p hw:2,0,0 -d

jack_midi_dump

jack_midi_dump

GMIDImonitor

Doesn't display raw MIDI note number, doesn't display active sensing (and other such messages?).

KMidimon

  • KMidimon monitors events coming from MIDI external ports or applications via the ALSA sequencer, and from SMF (Standard MIDI files) or WRK (Cakewalk/Sonar) files. It is especially useful if you want to debug MIDI software or your MIDI setup. It features a nice graphical user interface, customizable event filters and sequencer parameters, support for MIDI and ALSA messages, and saving the recorded event list to a SMF or text file.

MidiMon

  • MidiMon - Basic MIDI monitor, works w/ JACK or ALSA MIDI drivers - Most types of MIDI messages can be filtered from the monitor. - MIDI events can be captured to a text file (SMF planned). - UI Widgets can be hidden to reduce screen clutter.

midisnoop

  • midisnoop is a simple MIDI monitor and prober. You can use it to monitor a MIDI device and/or software, and to send MIDI messages to a MIDI port to see how the device/software responds. midisnoop supports both ALSA and JACK MIDI ports via the RtMidi library. Dead.

MidiView

  • MIDI Input Viewer - a program that displays the MIDI messages at your computer's MIDI In. (It also can be used as a "software MIDI Thru" utility). Useful for checking the output of MIDI controllers, or verifying a sound module's response.

ASeqView

  • ASeqView - ASeqView is an ALSA sequencer user-client which works as event viewr. It visualizes received events, e.g. note-on/off, controls, pitch wheels, using bar graphs, as often seen in many sequencer programs. Using this viewer, even a simple command line sequencer like pmidi or playmidi1 becomes a cool one with graphical interface. Another feature of ASeqView is redirection of events. ASeqView can output the received events to subscription ports with some modification like channel mute or pitch change. Since this works as a real-time filter client, such modifications can be applied also in real-time without complexity. Dead, ALSA only.

MIDI Inspector

  • MIDI Inspector - a monitor/debug tool for LV2 plugin and host authors. It captures all MIDI events sent to its event input port and presents them on its user interface for convenient nested browsing.

MidiGraph

MidiView1

MIDITrail

Timing

Routing and processing

See also Pure Data#MIDI

a2jmidid

  • a2jmidid is daemon for exposing legacy ALSA sequencer applications in JACK MIDI system.
a2jmidid -eu
  # start, -e export hardware (see ALSA MIDI port names in JACK), -u strips the numeric ALSA client ID from the name of the Jack port
a2j_control ehw

a2j_control start

JAMRouter

  • JAMRouter is the best thing since sliced bread for routing MIDI events to/from JACK MIDI software ports and MIDI hardware supported by ALSA Raw MIDI, ALSA Sequencer, Generic Raw MIDI, and OSS MIDI. At its core, JAMRouter is a near-sample-accurate low-latency low-jitter MIDI event router and translator, designed specifically with external hardware in mind, with an initial emphasis on providing full MIDI support and SysEx translation for the Roland Juno-106, and otherwise full compatibility with practically all MIDI hardware. JAMRouter is a "must have" for any Linux MIDI musician using external MIDI hardware of any kind, especially analog synthesizers. With the right hardware and a properly tuned linux-rt (realtime) kernel, near-sample-accurate over-the-wire MIDI communication with latencies under 5 milliseconds and jitter under 150 microseconds is fully realizable. JAMRouter has already passed dozens of sample-accurate test results, and the timing continues to improve as development continues. JACK has been in the box too long. Now JACK can reliably communicate with MIDI hardware outside the box.


aconnect

  • aconnect - ALSA sequencer connection manager

ALSA Patch Bay

  • ALSA Patch Bay is a graphical patch bay for the ALSA sequencer API and the JACK audio API. It can use FLTK or GTKmm for the interface and take advantage LASH session management.


midi matrix

  • midi matrix - A plugin that reroutes/filters MIDI messages by channel. MIDI channel filtering (e.g. blocking of specific channels), MIDI channel multiplication (e.g. send events from channel X to channels X, Y and Z), MIDI channel rerouting (e.g send events from channel X to channel Y)


amidimap

  • amidimap is a basic MIDI mapper for the ALSA sound system. It acts as a filter, receiving and transforming MIDI events and then outputting them. Used to turn a Yamaha PSR300 keyboard into something that vaguely resembles a GM-compliant one.


QMidiRoute

MidiLayer

  • MidiLayer is a simple and easy to use application designed to enhance your live performances. Manage slots and channels, adjust the velocity and the volume, customize the note range and connect with modulation wheels and other types of controllers, all with the help of MidiLayer.

XController

  • XController is a MIDI routing software for Linux and is intended to control several MIDI devices (hardware/software) via one master keyboard. This includes sending program changes, sysex etc. by one keypress. XController depends on the ALSA-Library.

SoundFontCombi (sfc)

  • SoundFontCombi takes advantage of the ALSA sequencer to emulate a synthesizer or a master keyboard, routing MIDI events in eight parts with six MIDI outputs and two Midi inputs. It can also add functions to your master MIDI keyboard.

mcr

  • mcr is a MIDI router and controller for Linux originally based on SoundFontCombi version 0.018 by Josep Andreu (Holborn). It routes incoming MIDI messages from up to two input clients (e. g. MIDI keyboard, MIDI controller) to up to six output clients (e. g. software synthesizers), applying filters to up to eight sound banks (i. e. voices, organ stops, or instruments) at the same time.

disappeared from the web??


Zweeger

  • Zweeger is a modular extended MIDI filter and generator. It works as a standalone tool or as a VST effect. It can be placed between any MIDI input, such as keyboards, and any tool that can be controlled by MIDI messages (effects, samplers, hardware, software...) It can also work without any input as a "simple" generator. Zweeger is composed of various elements, such as LFO, envelops, random curves, delays, note generators, ... All of them can be chained in various ways, synchronized on the tempo.

Java or Linux/Windows VST. UI is janky.

FMidiAutomation

  • https://bitbucket.org/camennie/fmidiautomation - a tool for automating MIDI commands. While some music programs provide automation for a few controller changes, such as volume and pan, I want this to handle any MIDI command and not be tied to a particular program. To this end, FMidiAutomation provides a sequencer of curves of MIDI command data. A user can record live data and easily adjust each recorded curve's position in the sequencer. As well, each data point of a curve can be manually edited. The end result is a fancy curve editor for MIDI data that can be sequenced. This project is far from complete and has been a sandbox for experimenting with Gtk and C++11. The Gtk2.4 branch is somewhat usable where the master branch needs the UI for the Jack connection stuff rewritten.

QMIDICurves

  • QMIDICurves is a simple QT/JACK application (GPL license) that lets you change MIDI-keyboard velocity response. You can choose between pre-defined curves or create your own curves.

PIZ midiCurve

  • PIZ midiCurve - Maps a CC, velocity, aftertouch, and/or channel pressure according to a curve. Holds 128 presets and supports MIDI Program Change. Instructions are in the plugin (click "Help"). There is also midiPBCurve for Pitch Bend.

CCStepper

  • http://www.codefn42.com/ccstepper CCStepper is a Windows VST MIDI CC data sequencer plugin, suitable for controlling MIDI capable software (softsynths or effects) or external hardware devices. CCStepper lets you create up to 8 independent sequences with up to 64 steps each, and can either be synced to your host or triggered by MIDI notes. The step rate can be set from 1/128 notes and up to 32 bars, and various randomization features allows you to create unpredictable sequences.



midifilter.lv2

  • midifilter.lv2 - LV2 plugins to filter MIDI events. So far 27 MIDI event filters have been implemented
  • CC2Note -- translate control-commands to note-on/off messages
  • Channel Filter -- discard messages per channel
  • Channel Map -- map any MIDI-channel to another MIDI-channel
  • Enforce Scale -- force midi notes on given musical scale
  • Eventblocker -- notch style message filter. Suppress specific messages
  • Keyrange -- discard notes-on/off events outside a given range
  • Keysplit -- change midi-channel number depending on note (and optionally transpose)
  • MapCC -- change one control message into another
  • Mapscale -- flexible 12-tone map
  • Chord -- harmonizer - create chords from a single note in a given musical scale
  • Delay -- delay MIDI events with optional randomization
  • Channel Unisono - Duplicate MIDI events from one channel to another.
  • Strum -- arpeggio effect intended to simulate strumming a stringed instrument (e.g. guitar)
  • Transpose -- chromatic transpose MIDI notes
  • Monophonic Legato - Hold a note until the next note arrives. - Play the same note again to switch it off.
  • NoSensing -- strip MIDI Active-Sensing events
  • NoDup -- MIDI duplicate blocker. Filter out overlapping note on/off and duplicate messages
  • Note2C - Convert MIDI note-on messages to control change messages.
  • Note Toggle - play a note to turn it on, play it again to turn it off.
  • nTabDelay -- repeat notes N times (incl tempo-ramps -- eurotechno hell yeah)
  • Passthru -- no operation, just pass the MIDI event through (example plugin)
  • Quantize -- live midi event quantization
  • Velocity Randomizer -- randomly change velocity of note-on events
  • ScaleCC -- modify the value (data-byte) of a MIDI control change message
  • Sostenuto -- delay note-off messages, emulate a piano sostenuto pedal
  • Velocity Range -- filter MIDI note events according to velocity
  • Velocity Scale -- modify note velocity by constant factor and offset

Piz MIDI

  • midi16CCRouter - Changes up to 16 CCs to 16 other CCs.
  • midi2qwerty16 - Use MIDI to trigger fake keystrokes to the focused window.
  • midiAlias - Note values are reflected between a "Nyquist Note" and a "Zero Note," similar to the effect of audio sample aliasing.
  • midiAudioToCC - Converts audio amplitude to CC messages.
  • midiBlackKeyFilter - Separately adjust velocity of black and white keys, and/or send them on different channels.
  • midiCCModulator - Use one CC to modulate another CC (or note velocity) in various ways: add/subtract/multiply/etc, plus logic gates (AND, NAND, * XNOR, etc).
  • midiCCReset - Remembers CC values and sends them out again at selected times.
  • midiCCStepper - Quantize CC events by value or in time.
  • midiCCToggle - For changing momentary CC buttons into toggles.
  • midiChannelize - Transforms everything to the selected channel.
  • midiChordHold - Sustains a chord until another one is played.
  • midiChordSplit - For splitting polyphonic material to multiple midi channels based on selected note ranges for each voice.
  • midiChs_noGUI - Channel filter/changer like energyXT1 "MIDI chs" component.
  • midiConverter3 - Change and convert between CC, Channel Pressure, Poly Aftertouch, Program Change, Pitch Bend, NRPN/RPN, Note On/Off, and other messages in various ways.
  • midiDelay - Delay notes and/or CCs with feedback.
  • midiDuplicateBlocker - Remembers all MIDI message values it gets on each channel, and blocks any repeated values until a different value is received.
  • midiExactDelay - Simple delay (no dry signal, no feedback) with flexible and precise delay time.
  • midiFingered - Selectively sends standard portamento on/off CC messages to emulate "fingered portamento" for synths that don't have it.
  • midiForceToKey - Enforces a scale, and transposes within the scale (optionally based on MIDI notes on a selected channel).
  • midiForceToRange - Transposes notes by octave into the selected range.
  • midiInvertNotes - "Mirrors" notes centered around the selected note.
  • midiKeySplit - Simple keyboard splitter.
  • midiKeySplit4 - Four-zone keyboard splitter.
  • midiMultiProgramChange - Uses input program change to trigger selected program changes on all channels.
  • midiNotchFilter - Isolate, remove, or channelize specific MIDI messages.
  • midiNoteGroups - Assign play and/or choke groups to MIDI notes.
  • midiNoteMap - Simple 1-to-1 keyboard mapper.
  • midiNoteRepeater - Repeats every Nth note a set number of times, or blocks it.
  • midiNotesToCC - Converts note number and velocity to CC messages.
  • midiNoteToggle - Notes (optionally within a selected range and/or channel) are toggled... play a note once to turn it on, play it again to turn it off.
  • midiNRPNConverter - Converts between NRPN/RPN and CC messages, with 16 conversion slots.
  • midiOverlappingNoteKiller - Prevents overlapping notes at the same pitch.
  • midiPitchBendQuantize - Quantizes pitch bend messages to up to 25 values.
  • midiPitchBendToNotes - Changes pitch bend plus note messages into notes at the "bent" pitch (may be useful for using Suzuki QChord with non-multitimbral instruments).
  • midiPolyphony - For spreading polyphony across MIDI channels, i.e. if you play 4 notes, each one will go to a different channel. Polyphony per channel can be set from 1 to 16 notes for more flexibility. You can also use it to convert polyphonic input to monophonic output.
  • midiProbability - Add probability-based effects to incoming MIDI events, optionally synced to host timeline.
  • midiProgramChange - Send Program Change and/or Bank Select messages.
  • midiSimpleLFO - One CC LFO with some "simple" options.
  • midiScaleChanger - Transposes notes by individual scale degrees and/or globally, to change one scale into another. Among other things, this allows you to play any scale using only the white keys.
  • midiSostenuto - Like a piano sostenuto pedal, but for MIDI notes instead of piano dampers.
  • midiStrum - Sequentially delays notes of an input chord to simulate strumming.
  • midiStuckNoteKiller - Sends note-off messages to end hanging notes when the host stops (for hosts that don't do this themselves).
  • midiSwing - Delays and/or offsets velocity of and applies probability to notes (and optionally also CCs) at every other step of a selected note value.
  • midiTriggerList - Use one note or CC to trigger up to 8 other notes and/or CCs.
  • midiVelocityScaler - Scale/reverse/offset velocity of input notes (Note On and/or Note Off).


  • midiLooper It doesn't write music for you. It's not an arpeggiator and it's not really a step sequencer. 128 independently controllable slots for recording/playing/manipulating MIDI sequences. Draw in notes, record live, or import existing MIDI files. Can be used as: MIDI looper/sampler - "extra hands" for live playing. Plays back what you play, whenever you want it to. MIDI file player, in sync with the host (or not). Seamlessly switch between patterns. Composition tool - fit any sequence to any chord progression, on the fly. All of the above, simultaneously.

CodeFN42

  • NoteMapper - a VST plugin that allows you to map MIDI notes to other notes. Each incoming note can be mapped to up to three notes, even on different MIDI channels. This allows you to, for example, let one specific note trigger drum sounds in up to three different drum samplers. In addition, you can scale the note velocity, apply randomization to the velocity scaling, and set a note probability for each individual note.

S-Production MIDI VST Plugins

  • MIDI-VST-Plugins - S-CC-Init, S-CC-Matrix/-V2, S-CC-Monitor, S-CC-Sustain-Lite, S-Indicators, S-Message, S-Midi-Matrix, S-Midi-Monitor-Lite, S-Midi-Panic, S-Midi-Random, S-Midi-Senderella, S-Midi-Stepper, S-Note-Matrix, S-PC-Init, S-Poly-Limiter

Div's MIDI Utilities

  • alsamidi2pipe and pipe2alsamidi - bridges between ALSA and the pipe-based utilities.
  • average-tempo, scale-tempo, offset-tempo, average-velocity, scale-velocity, and offset-velocity
  • brainstorm - functions as a dictation machine for MIDI. It listens for incoming MIDI events and saves them to a new MIDI file every time you pause in your playing for a few seconds. filenames are generated automatically based on the current time.
  • intervals - plays parallel intervals for incoming MIDI messages.
  • jumpoctave - use the pitch bend wheel as an octave jump control.
  • metercaster - place waypoints in the sequence to tell metercaster what the proper time should be for events of your choosing, and it interpolates among them, coming up with the proper times for the rest of the events.
  • tempo-map - used to acheive a similar effect to metercaster, but is far faster and more intuitive to use. Inspired by, but more powerful than the "fit to improvisation" feature in Cakewalk
  • dispmidi - pretty-prints incoming MIDI messages.
  • mish - a compiler for a text-based music notation language called "Mish" (MIDI shorthand)
  • pipe2net, alsamidi2net, net2pipe, and net2alsamidi - utilities that speak NetMIDI, a trivial network protocol which sends standard MIDI messages over a TCP/IP connection as fast as possible.
  • normalizesmf and verbosify - provides a minimal demonstration of the midifile library. It reads in a MIDI file, then writes it out again. If your sequencer complains that a file is invalid, this normalizer might make it more palatable.
  • rw - can be used to split out a *nix device's input and output to separate FIFOs.
  • transpose - filter-style utility transposes incoming MIDI messages by a specified interval.
  • xmidiqwerty - partially completed program which lets you use a MIDI keyboard as a chording text keyboard in X11

pidim

  • Pidim is a collection of small Gtk+ applications which purpose is to filter and generate MIDI events, based on the ALSA Sequencer interface, with MIDI control available.
  • pidim_arpeggiate: enter the arpeggio in ABC syntax, where 'C' is the reference input note. Press [ENTER] to activate the arpeggio.
  • pidim_transpose: the transposition value is specified in semitones.
  • pidim_split_port: the split-note is specified as a MIDI key number.
  • pidim_split_chan: same as pidim_split_port (but split over channels).
  • pidim_ctrl_swap: swap the specified controller number with its value.

J's MIDI tools

CC value limiter, multi channel key range/transpose midi, CC controlled (or not) transposer, CC time blocker, CC64 (sustain) emulator, CC inverter, aftertouch to CC, random note delay, CC-controlled channel switcher, velocity – CC switcher, chord note-channel-switcher.


mididings

  • mididings is a MIDI router and processor with a domain-specific language based on Python, supporting ALSA and JACK MIDI. It is available under the GNU GPL and currently runs on Linux. The main difference between mididings and regular Python scripts is that mididings typically uses Python only at startup. Patches consist of Python objects and nested data structures, but not actual Python code to be executed once everything is set up. Internally, patches are converted to C++ objects, and the processing is done entirely in C++. It is however possible to call back into Python, if necessary. Although mididings is a Python module that can theoretically be imported in other Python applications, it’s really not designed to be used that way. Think of mididings as a standalone application, that just happens to use Python as its “user interface”.

Arch Linux package is old. Install from git for latest version.


Midish

  • Midish is an open-source command-line MIDI sequencer/filter for Unix-like operating systems. Implemented as a simple command-line interpreter (like a shell) it's intended to be lightweight, fast and reliable for real-time performance. Important features: multiple MIDI devices handling, synchronization to external audio/MIDI hardware/software, real-time MIDI filtering/routing (controller mapping, keyboard splitting, ...), track recording, editing, progressive quantisation ..., import and export of standard MIDI files, system exclusive messages handling


MIDIpal


midifilter

  • https://github.com/jjttcc/midifilter - script that, with the help of supporting perl modules, runs as an ALSA MIDI client that can receive input from a source (such as a MIDI keyboard connected to the computer), perform various filtering and other functionality based on the type and content of the MIDI input, and send the result to one or more other MIDI clients.

midiguchi

  • https://github.com/midiguchi/midiguchi - MIDI I/O using Functional Reactive Programming with Bacon.js. Transpose, remap, filter, manipulate arbitrarily, or synthesize MIDI events with ease.


The MidiBus

  • The MidiBus - a MIDI library for Processing which provides a fast and easy way to send and receive MIDI data. The MidiBus is desgined primarily for real time MIDI applications. It's focused on MIDI I/O and keeps the frills to a minimum; currently it has no built in sequencer, file read/write, MIDI recording/playback. - Java

midipus

  • https://github.com/original-male/midipus - an intelligent MIDI switch. One bidirectional ALSA sequencer connection (the head) is switched between multiple bidirectional outputs (the arms) by special, out of band messages. Data arriving on inactive arms is analyzed, compressed, and relayed to the head upon switching. This allows, for instance, a single BCF2000 to control Ardour, envy24control, Rosegarden, ZynAddSubFX and FreeWheeling at once in a paged, exclusive fashion; without any undesirable interaction between clients and without the BCF and the clients' parameter values drifting out of sync. ... Included in this distribution are several SysEx files to automatically reprogram a BCF2000 to work with Midipus.


PatchMaster

  • PatchMaster - a MIDI processing and patching system. It allows a musician to reconfigure a MIDI setup instantaneously and modify the MIDI data in real time. With PatchMaster a performer can split controlling keyboards, layer MIDI channels, transpose them, send program changes and System Exclusive messages, limit controller and velocity values, and much more. At the stomp of a foot switch (or any other MIDI event), an entire MIDI system can be totally reconfigured. PatchMaster lets you describe songs, which are lists of patches that connect instruments. Those connections can send program changes, set keyboard splits, transpose, send volume or other controller changes, and let you apply any Ruby code you want to the MIDI stream in real time.

Qualm

  • Qualm might be referred to simply as a "MIDI event processor" -- it connects to an input MIDI port, listens for events, and will output new MIDI events on an output port as necessary. For example, it can listen for particular note on/off events and use them to send out patch changes, or even duplicate one channel's pedal events on other channels so that one pedal can do the work of many. It takes a control file written in XML, consisting of a list of patches, and aset of “cues” (gathered into independent cue “streams”) which describe the patch changes and the eventsthat will trigger the next cue in the sequence.

Live Midi Router

  • Live Midi Router was designed to provide musicians a solution to drive live music softwares such as soft synths, soundfont players, instrument emulators etc.. from midi controllers on linux operating systems running alsa and jack. LiveMidiRouter is a non interactive program. A config file must be specified when starting.

JamPatcher

  • JamPatcher - a MIDI utility that listens for bank and program changes and lets you assign them to keys to be re-sent later. I wrote JamPatcher because I play with a group of friends once a week. We rent different rehearsal rooms that can contain different keyboards each time we play. Finding a patch I want to use can take time, especially if I'm unfamiliar with a keyboard or it has an ungainly menu structure. Once I've found a patch I like, I can easily assign it to a key and quickly retrieve it by pressing that key.


RtMidi

Reactive-balsa

  • Reactive-balsa - live MIDI event processor based on the Reactive-banana framework and ALSA. (Thus it is currently bound to Linux.) It is the successor of the package StreamEd, that uses a kind of arrow types. The MIDI event processor can be used for accompaniment, gags, games and more. It is usually inserted between a MIDI input device such as a USB piano keyboard and a MIDI controlled synthesizer, say an internal software synthesizer or an external hardware synthesizer.

Some of the included examples: split keyboard, transposition, delay, map key to filter frequency, arpeggiator: play a pattern according to pressed keys, generate a beat with controllable tempo, instrument cycling: every note is played with a different instrument, LFO-controlled change of MIDI controllers, simulate playing chords on a guitar, interval recognition trainer, keyboard with mirrored order of keys: perfect support for lefties :-)

Mi_D

  • Mi_D is a multi-platform, multi-driver, and multi-language shared library that offers clients a simple unified, yet unique set of MIDI services that are not commonly found in existing driver interfaces. Although originally devised as MIDI architecture for Common Music, Mi_D is fully self-contained and designed to simplify greatly the addition of high-level MIDI functionality to a wide variety of clients, including applications that are not genuine MIDI sequencers.

Platform-independence is achieved by emulating a uniform API on top of existing MIDI drivers and OS services, thus abstracting from various driver- or platform-specific idiosyncrasies as well as differences in functionality among drivers. Mi_D currently runs on SGI's and both, 68k and PPC Macintoshes, using the native SGI MIDI driver and Opcode's OMS, respectively. It also includes interfaces to C/C++ and various LISP implementations. Future ports will support most likely Windows, Linux, and maybe NeXT/Rhapsody.


MIDIcloro

  • MIDIcloro is a 4-to-1 MIDI merger which adds MIDI clock, polyphonic chords and routing of channels to class-compliant USB MIDI devices. The clock, chord and routing settings can be controlled in real-time via MIDI CC. MIDIcloro is a Linux console application intended to be used on the Raspberry Pi/Raspbian to provide a small hardware solution, entirely controlled via MIDI, for connecting and improving the capabilities of USB MIDI devices.


Midiflow

Generation

  • https://github.com/rokn311/MidiTool4LazyPeople - randomizing your synthesizers with sending CC messages. First, you will create a CSV file with CC parameters - Midi channel (0 = 1, 1 = 2, 2 = 3, ...), Control Change number, Value min, Value max. Once all the parameters you want to randomize are in your file, run "MidiTool4LazyPeople.py", choose the port of the synthesizer, the file to send to your synth... and that's all !


  • Eckel - a midi generating VST based on the eucledian algorithm. There are 8 instances of the generating part. Pulse is the actual sounding beats, space is the spacebetween the pulses. Speed is how fast they come, 0 is 4th 1 is 8th's etc. Note is the MIDI note thatthe algorithm spews out. How you actually make it work in your host is up to you to find out. Remember that Eckelsends MIDI note on an