Audio

From Things and Stuff Wiki
Revision as of 10:56, 10 January 2018 by Milk (talk | contribs) (→‎AC-3)
Jump to navigation Jump to search


to finish rearranging.

Mostly Linux, mostly free software.

quicklink: Pure Data, Audio setup, Soundbox

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


  • RealSimple Project - musical acoustics laboratory exercises integrating both hands-on laboratory experience and computer-based simulation.

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, etc.








Communities




Amplitude

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


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.





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


Drum machine

  • LXR Drum Synthesizer - The LXR is a full fledged digital drum machine with integrated sequencer. Its sound engine provides 6 different instruments, each with over 30 parameters to tweak. It can produce a wide variety of sounds, ranging from classic analogue emulations to crunchy digital mayhem.

Sampler

Sound module

  • https://en.wikipedia.org/wiki/Sound_module - an electronic musical instrument without a human-playable interface such as a piano-style musical keyboard. Sound modules have to be operated using an externally connected device, which is often a MIDI controller, of which the most common type is the musical keyboard (although wind controllers, guitar controllers and electronic drum pads are also used). Controllers are devices that provide the human-playable interface and which may or may not produce sounds of its own. Another common way of controlling a sound module is through a sequencer, which is computer hardware or software designed to record and play back control information for sound-generating hardware (e.g., a DJ may program a bassline and use the sound module to produce the sound). Connections between sound modules, controllers, and sequencers are generally made with MIDI (Musical Instrument Digital Interface), which is a standardized protocol designed for this purpose, which includes special ports (jacks) and cables.


Sound chip/card







  • 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.





Music workstaion


Digital Audio Workstation




FireWire

  • https://en.wikipedia.org/wiki/IEEE_1394 - an interface standard for a serial bus for high-speed communications and isochronous real-time data transfer. It was developed in the late 1980s and early 1990s by Apple, which called it FireWire. The 1394 interface is also known by the brands i.LINK (Sony), and Lynx (Texas Instruments). The copper cable it uses in its most common implementation can be up to 4.5 metres (15 ft) long. Power is also carried over this cable allowing devices with moderate power requirements to operate without a separate power supply. FireWire is also available in Cat 5 and optical fiber versions. The 1394 interface is comparable to USB, though USB requires a master controller and has greater market share.


  • FFADO project aims to provide a generic, open-source solution for the support of FireWire based audio devices for the Linux platform. It is the successor of the FreeBoB project.


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

Jesusonic

  • Jesusonic - A dynamic text mode live FX processor
  • https://code.google.com/p/jsfxgen - a working proof-of-concept modular IDE for generating DSP code for the JesuSonic platform, written using the Flex and AIR SDKs. JesuSonic has a standalone version and is also part of Reaper as a plugin.



The OWL

  • The OWL - an open source, programmable audio platform made for musicians, hackers and programmers alike. Users can program their own effects, or download ready-made patches from our growing online patch library. It is available both as a guitar fx pedal and a Eurorack synthesizer module. OWL stands for Open Ware Laboratory which refers to the fact that the entire project is open source in both hardware and software. Being open source is an important issue for us in terms of making all of the technology completely accessible to the end user.

to sort


Game controller

Eye tracking

  • http://paulbatchelor.github.io/proj/eyejam - an open-source eye-controlled music composition environment. This was developed during for my summer internship with the Enable Group at Microsoft Research. The source code can be found on github under the official project name Microsoft Hands-Free Sound Jam. EyeJam is cross-platform, with suport for Windows, Mac, and Linux. Eye-control is only available on Windows. On the other platforms, eye control is simulated using the mouse cursor.

Raspberry PI

Instrument

  • https://open-music-kontrollers.ch/chimaera/about Chimaera] - a poly-magneto-phonic-theremin (we had to come up with this new subcategory in the domain of electronic instruments, as the Chimaera did not fit anywhere else). Other terms that would describe it well could be: a general-purpose-continuous-music-controller, a multi-touch-less-ribbon-controller or a possible offspring of a mating experiment of a keyboard and violin. Think of it as an invisible string that is excitable by an arbitrary number of magnetic sources. Depending on where the magnetic sources are located on the string and depending on how strong (or how near) they are, the device outputs different event signals. These general-purpose event signals then can be used to e.g. drive a synthesizer, an effects processing unit or some other hardware.

Wire


Music roll

  • https://en.wikipedia.org/wiki/Music_roll - a storage medium used to operate a mechanical musical instrument. They are used for the player piano, mechanical organ, electronic carillon and various types of orchestrion. The vast majority of music rolls are made of paper. Other materials that have been utilized include thin card (Imhof-system), thin sheet brass (Telektra-system), composite multi-layered electro-conductive aluminium and paper roll (Triste-system) and, in the modern era, thin plastic or PET film. The music data is stored by means of perforations. The mechanism of the instrument reads these as the roll unwinds, using a pneumatic, mechanical or electrical sensing device called a tracker bar, and the mechanism subsequently plays the instrument. After a roll is played, it is necessary for it to be rewound before it can be played again. This necessitates a break in a musical performance. To overcome this problem, some instruments were built with two player mechanisms allowing one roll to play while the other rewinds. A piano roll is a specific type of music roll, and is designed to operate an automatic piano like the player piano or the reproducing piano.


  • https://en.wikipedia.org/wiki/Piano_roll - a music storage medium used to operate a player piano, piano player or reproducing piano. A piano roll is a continuous roll of paper with perforations (holes) punched into it. The perforations represent note control data. The roll moves over a reading system known as a 'tracker bar' and the playing cycle for each musical note is triggered when a perforation crosses the bar and is read. A rollography is a listing of piano rolls, especially made by a single performer, analogous to a discography.

Piano rolls were in continuous mass production from around 1896 to 2008, and are still available today, with QRS Music claiming to have 45,000 titles available with "new titles being added on a regular basis". Largely replacing piano rolls, which are no longer mass-produced today, MIDI files represent a modern way in which musical performance data can be stored. MIDI files accomplish digitally and electronically what piano rolls do mechanically. Software for editing a performance stored as MIDI data often has a feature to show the music in a piano roll representation.


  • Midimusic eplayWin32 - Estey and Wurlitzer e-roll player for Hauptwerk, Miditzer, GrandOrgue & eplayOrgan. This graphical player will play Estey e-rolls on any Hauptwerk or Miditzer organ and Wurlitzer Band Organ e-rolls on eplayOrgan (Windows, iMac and Linux) It will automatically operate the manuals, pedals, stops, couplers and swell. As supplied this version plays the Hauptwerk St. Annes Moseley and Paramount 310 plus the Miditzer 160, 216 or 260 organs. It also plays Wurlitzer 125, 150 and 165 organs. Other Hauptwerk or Miditzer organs can be played by adding their data via the menus. It also plays my new eplayOrgan and most other organs which can be played from midi keyboards, including GrandOrgue, Viscount and jOrgan.

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. [7]
  • 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.
  • The Synthesizer Academy - a site dedicated to help you learn about synthesis and the creation of electronic music. If you’re looking for a synthesizer tutorial, this is the site for you! You can either start at the very beginning and work your way through each lesson one-by-one, or use the red bar at the top to jump in wherever you want. We’ll also be adding links to various synth resources to help you learn more and get your hands on some gear to play with. New lessons will be added frequently, so check back often.



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.



  • https://en.wikipedia.org/wiki/Analog_synthesizer - a synthesizer that uses analog circuits and analog signals to generate sound electronically. The earliest analog synthesizers in the 1920s and 1930s, such as the Trautonium, were built with a variety of vacuum-tube (thermionic valve) and electro-mechanical technologies. After the 1960s, analog synthesizers were built using operational amplifier (op-amp) integrated circuits, and used potentiometers (pots, or variable resistors) to adjust the sound parameters. Analog synthesizers also use low-pass filters and high-pass filters to modify the sound. While 1960s-era analog synthesizers such as the Moog used a number of independent electronic modules connected by patch cables, later analog synthesizers such as the Minimoog integrated them into single units, eliminating patch cords in favour of integrated signal routing systems.


  • https://en.wikipedia.org/wiki/Digital_synthesizer - a synthesizer that uses digital signal processing (DSP) techniques to make musical sounds. This in contrast to older analog synthesizers, which produce music using analog electronics, and samplers, which play back digital recordings of acoustic, electric, or electronic instruments. Some digital synthesizers emulate analog synthesizers others include sampling capability in addition to digital synthesis.


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.


  • https://en.wikipedia.org/wiki/Banded_waveguide_synthesis - a physical modeling synthesis method to simulate sounds of dispersive sounding objects, or objects with strongly inharmonic resonant frequencies efficiently. It can be used to model the sound of instruments based on elastic solids such as vibraphone and marimba bars, singing bowls and bells. It can also be used for other instruments with inharmonic partials, such as membranes or plates. For example, simulations of tabla drums and cymbals have been implemented using this method. Because banded waveguides retain the dynamics of the system, complex non-linear excitations can be implemented. The method was originally invented in 1999 by Georg Essl and Perry Cook to synthesize the sound of bowed vibraphone bars (Essl Cook 1999).


  • https://en.wikipedia.org/wiki/Karplus–Strong_string_synthesis - a method of physical modelling synthesis that loops a short waveform through a filtered delay line to simulate the sound of a hammered or plucked string or some types of percussion. At first glance, this technique can be viewed as subtractive synthesis based on a feedback loop similar to that of a comb filter for z-transform analysis. However, it can also be viewed as the simplest class of wavetable-modification algorithms now known as digital waveguide synthesis, because the delay line acts to store one period of the signal.


  • https://en.wikipedia.org/wiki/Distortion_synthesis - a group of sound synthesis techniques which modify existing sounds to produce more complex sounds (or timbres), usually by using non-linear circuits or mathematics. While some synthesis methods achieve sonic complexity by using many oscillators, distortion methods create a frequency spectrum which has many more components than oscillators. Some distortion techniques are: FM synthesis, waveshaping synthesis, and discrete summation formulas.


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." [8]



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." [9]

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

Freenode:

  • #lau
  • #lad
  • #opensourcemusicians
  • #linuxmusicians
  • #jack
  • #pulseaudio
  • #ardour
  • #ingen
  • #non
  • #lmms
  • ##zynsubaddfx
  • #dataflow - pure data
  • #lilypond
  • #lv2
  • #Juce
  • #kxstudio
  • #archaudio
  • #archlinux-aur
  • #audio4linux.de
  • ##dsp
  • #kvr
  • #RedditAudio
  • ##audio
  • ##music
  • ##

OFTC:

  • #debian-multimedia

Cons

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." [10]


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


  • https://github.com/libfuse/osspd - OSS Proxy uses CUSE (extension of FUSE allowing character devices to be implemented in userspace) to implement OSS interface - /dev/dsp, /dev/adsp and /dev/mixer. From the POV of the applications, these devices are proper character devices and behave exactly the same way so it can be made quite versatile.

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. [11]



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 [13]

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

GUI
CLI
TUI
 h/j/k/l, arrows               navigation, volume change
 H/L, Shift+Left/Shift+Right   change volume by 10
 1/2/3/4/5/6/7/8/9/0           set volume to 10%-100%
 m                             mute/unmute
 Space                         lock/unlock channels together
 Enter                         context menu
 F1/F2/F3                      change modes
 Tab                           go to next mode
 Mouse left click              select device or mode
 Mouse wheel                   volume change
 q/Esc/^C                      quit


  • https://github.com/mk-fg/pulseaudio-mixer-cli - Interactive python/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 tune down the music to hear the stuff from games, mumble, skype or browser.


Web

Other

  • https://linux.die.net/man/1/padsp - PulseAudio OSS Wrapper. starts the specified program and redirects its access to OSS compatible audio devices (/dev/dsp and auxiliary devices) to a PulseAudio sound server. padsp uses the $LD_PRELOAD environment variable that is interpreted by ld.so(8) and thus does not work for SUID binaries and statically built executables. Equivalent to using padsp is starting an application with $LD_PRELOAD set to libpulsedsp.so
cat /dev/urandom | padsp tee /dev/audio > /dev/null




JACK

See also #Jack configuration

  • 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.




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.

dspd

aRts

See #aRts_2

Enlightened Sound Daemon

Pipewire

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).


  • https://github.com/brummer10/pajackconnect - Make JACK Work With PulseAudio. This script is intended to be invoked via QjackCtl to start up and shut down JACK on a system running PulseAudio. It handles the necessary setup to make the two work together, so PulseAudio clients get transparently routed through JACK while the latter is running, or if pulseaudio is suspend by pasuspender, do nothing

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.

WAVE

  • 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. [16]

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

  • http://en.wikipedia.org/wiki/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


Playlist formats

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

Jack configuration

pasuspender -- jackd
  # temporaraly suspend pulseaudio and start jack (needed for jack1 without PA patch)
 jackd -R -P89 -s -dalsa -dhw:0 -r48000 -p256 -njack-server
  # start jackd, realtime priority 89, ALSA engine soundcard hw:0, sample rate of 48k, 256 max ports, instancename


  • jack_iodelay - will create one input and one output port, and then measures the latency (signal delay) between them. For this to work, the output port must be connected to its input port. The measurement is accurate to a resolution of greater than 1 sample.
  • https://gareus.org/oss/jackfreqd/start - heavily based on powernowd. Instead of taking CPU load as parameter for deciding on the CPU frequency jackfreqd uses JACK DSP-load and jackfreqd only supports the powernowd's aggressive mode 1). Optionally jackfreqd can also take CPU load into account which comes in handy when the JACK-daemon is temporarily unavailable or if frequency-scaling should also be done for on non-audio processes.


jack_control

D-Bus control via python2-dbus

jack_control start
  # starts the jack server

jack_control stop
  # stops the jack server

jack_control status
  # check whether jack server is started, return value is 0 if running and 1 otherwise
jack_control dg
  # current driver

jack_control dp
  # current driver paramaters
jack_control dl
  # drivers list

jack_control ds alsa
  # selects alsa as the driver (backend)
 
jack_control sm
  # switch master to currently selected driver
jack_control eps realtime True
  # set engine parameters, such as realtime

jack_control dps period 256
  # set the driver parameter period to 256
etc.:
  help                       - print this help text
  dpd <param>                - get long description for driver parameter
  dps <param> <value>        - set driver parameter
  dpr <param>                - reset driver parameter to its default value
  asd <driver>               - add slave driver
  rsd <driver>               - remove slave driver
  il                         - get list of available internals
  ip <name>                  - get parameters of given internal
  ipd <name> <param>         - get long description for internal parameter
  ips <name> <param> <value> - set internal parameter
  ipr <name> <param>         - reset internal parameter to its default value
  iload <name>               - load internal
  iunload <name>             - unload internal
  ep                         - get engine parameters
  epd <param>                - get long description for engine parameter
  eps <param> <value>        - set engine parameter
  epr <param>                - reset engine parameter to its default value


jackman

ASTRUX

Session/config management

LASH Audio Session Handler

  • 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. Inflexible and underused.

  • 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 or simply ladish is a session management system for JACK applications on GNU/Linux using Dbus. 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.
    • https://github.com/LADI/ladish/network - 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
LADI Tools
  • https://github.com/alessio/laditools - LADI Tools, forked from LADI/laditools, is a set of tools aiming to achieve the goals of the LADI project to improve desktop integration and user workflow of Linux audio system based on JACK and LADISH. Those tools take advantage of the DBus interfaces of JACK2 and LADISH to ease the configuration and use of your software studio.

In a near future, it should also be possible to use laditools to control JACK through an OSC interface.

You will find in this suite:

  • laditools - python module
  • ladi-system-tray - a system tray icon that allows you to start, stop and monitor JACK, as well as start some JACK related apps (log viewer, connections...)
  • wmladi - a controller as a Window Maker dockapp which uses a menu similar to ladi-system-tray's
  • ladi-system-log - a JACK, LADISH and a2jmidid log viewer
  • ladi-control-center - a GUI to setup JACK's and laditools' configuration
  • ladi-player - compact front-end to that allows users to start, stop and monitor a LADI system.
  • g15ladi - a JACK monitor for g15 keyboards

JACK Session

  • originally jack 1 (not D-Bus)
  • Saving a session will save the state of all 'JACK Session'-supported apps plus their JACK connections
  • Opening a session will automatically launch those apps, restoring their state and JACK connections
  • Supported apps can be told to save/load their state to/from a specific location





QjackCtl

  • QjackCtl - JACK Audio Connection Kit - Qt GUI Interface

QjackCtl holds its settings and configuration state per user, in a file located as $HOME/.config/rncbc.org/QjackCtl.conf. Normally, there's no need to edit this file, as it is recreated and rewritten everytime qjackctl is run.

  • D-Bus control and Jack 2 D-Bus control
  • Connection and JACK Session manager

Cadence

  • Cadence - 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 &
Claudia
  • Claudia - a LADISH frontend; it's just like Catia, but focused at session management through LADISH.
  • 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/vktec/njsm - bridges Non Session Manager and JACK Session. This allows programs that support JACK Session (say, jalv) to run inside nsm-proxy and have their data saved using njsm.


  • 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.

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


Broken? Depends on listlib which depends on anch which depends on tml which depends on flex. None of these were in the AUR. Then tml didn't build.

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 - PatchMatrix gives the best user experience with JACK1, as it makes intensive use of JACK's metadata API, which JACK2 still lacks an implementation of.

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


Routing snapshots

aj-snapshot

  • aj-snapshot - 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


autocable

echo "connect system:capture_1 system:playback_1

> disconnect system:capture_2 system:playback_2" | ./autocable

./autocable yourdirectory/textfile.ac


JMess

  • https://github.com/jcacerec/jmess-jack - 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.
jmess -s filename.xml
  # save

jmess -c filename.xml
  # load

jmess -d -c filename.xml
  # disconnect all then load

jmess -d
  # disconnect all

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

jacklistener etc.


jackstdio

  • jackstdio - jack-stdout 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 - 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.


There are 4 types of engine processing:

  • Single-client: (JACK driver only) - carla-jack-single
    • Same as Multi-client, except that all JACK ports belong to a single master client.
    • This is needed when a setup doesn't support multi-client JACK apps, such as LADISH.
  • Multi-client: (JACK driver only) - carla-jack-multi
    • Every single plugin is exposed as a new JACK client. Audio and MIDI ports are registered as needed.
  • Rack: - carla-rack
    • Plugins are processed in order, from top to bottom.
    • Plugins with non-stereo audio channels are not supported, but a forced-stereo option is available for Mono ones.
  • Patchbay: - carla-patchbay
    • Modular patchbay mode, just like in JACK Multi-client and many other modular applications.
    • Every plugin gets its own canvas group and ports allowing you to interconnect plugin audio and MIDI.


carla-single 
  # usage: /usr/bin/carla-single [arch (optional)] [format] [filename/uri] [label (optional)] [uniqueId (optional)]

Possible archs:

 - native (default)
 - linux32
 - linux64
 - win32
 - win64

Possible formats:

 - internal
 - ladspa
 - dssi
 - lv2
 - vst|vst2
 - gig
 - sf2
 - sfz

Examples:

/usr/bin/carla-single internal midisplit
/usr/bin/carla-single dssi /usr/lib/dssi/whysynth.so
/usr/bin/carla-single lv2 http://calf.sourceforge.net/plugins/Compressor
/usr/bin/carla-single native vst /usr/lib/vst/TAL-NoiseMaker.so
/usr/bin/carla-single win32 vst "~/.wine/drive_c/Program Files (x86)/VstPlugins/Kontakt 5.dll"


  • https://github.com/progwolff/performer - Performer lets you manage all the songs in your setlist as individual Carla patches and loads each of them when you need it. Additionally Performer uses Okular or QWebEngine to display notes and chords of your songs.
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 - 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

REAPER

  • REAPER - digital audio workstation software: a complete multitrack audio and MIDI recording, editing, processing, mixing, and mastering environment. Nagware. No LV" support yet.





  • https://reapack.com - ReaPack is a package manager for REAPER, the Digital Audio Workstation. Discover, install and keep up to date your REAPER resources including ReaScripts, JS effects, extensions, themes, language packs, templates, web interfaces and more.


SWS / S&M

  • The SWS / S&M extension - a collection of features that seamlessly integrate into REAPER, the Digital Audio Workstation (DAW) software by Cockos, Inc. It is a collaborative and open source project. A bunch of actions: Filter REAPER's action list with "SWS"! The Snapshots window allows you to save selected track parameters for recall later. The Resources window is a versatile tool, but its main job is to let you fill your own "slots" of projects, track templates, FX chains, media files, etc. Just fill some slots and filter the action list with "Resources"! Groove tool is for quantizing audio and MIDI: learn a groove from an item and apply it to other items! Cycle Actions - Make special/advanced actions that perform sub-actions successively, or offer conditional statements, or etc. Marker actions allow you to place any action as a marker, and have that action ran when the play cursor crosses over that marker. Tempo manipulation and warp grid allows you to do extensive tempo manipulation and tempo mapping. If that's not enough, you can also freely warp grid using nothing but mouse. Anaylze and normalize loudness using the tools fully compliant with EBU R128 Loudness Recommendation. Power up your mouse usage with contextual toolbars. Show different toolbar at mouse cursor for each part of the interface. ReaConsole is a keyboard command interface for common track tasks. Notes window allows you to write custom notes for projects, tracks, etc but also for marker and regions. They can follow playback too (subtitles, lyrics, etc). Region playlist (non-linear play), Live Configs (for live performers: use REAPER like an FX pedal), additional zoom features, project management, color management, automatic colors/icons, LFO generator, cue buss generator, easily previewing and playing takes at mouse cursor, custom mouse cursors, etc.

JSFX


Other

LMMS

  • LMMS - 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. [23]


Tracktion T6

  • T6 DAW - freeware, features an intuitive, single-screen interface. Input, waveform and mixer – including EQ, level, pan and plugins – are laid out from left-to-right. Simply drag-and-drop additional features and automation on any track as needed. Unlimited numbers of audio and MIDI tracks, combined with a professional feature set, allow you to compose, record, edit, mix and share your music with ease. Modest CPU requirements make T6 ideal for use on nearly any Mac, Windows or Linux computer.

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

Rosegarden

No lv2 support. [24]

Open Octave Midi

  • OOMIDI - a fork of Rosegarden/MusE (??) 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.

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

Slow development, minimal documentation/website.


LNX_Studio


Frinika

  • Frinika - 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 can be somewhat janky..

MusiKernel

  • MusiKernel - 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

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..


Non-intuitive - e.g. 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..

OTTO

  • https://github.com/topisani/OTTO - An OP-1 inspired all-in-one synth/sequencer/sampler/recorder/more solution. The OTTO is a complete hardware and software solution, with synths, a sampler, effects, sequencers, and studio modules. It is heavily inspired by the OP-1, but takes some things in a different direction. The goal is to create an all-in-one portable device, that allows anyone to play around with electronic music. It shall be open and accessible, while maintaining the very constrained interfaces, necessary to really be creative.

The software is modular, with modules in six groups: Synths, drums, effects, modulation, sequencing, and studio. Each module has up to 4 settings, that can be controlled using 4 rotary encoders. Like the OP-1, the colours of the 4 rotaries corresponds to the colour of the option on screen that will be changed. Each module slot will be accessible from a single hardware button press. The software will be set up to run on a Raspberry Pi, with a small AMOLED screen, 4 rotary encoders, and around 20 buttons. This can then be built into any kind of enclosure, with or without a midi keyboard and other bells and whistles.


Web

Audiotool

  • Audiotool - web service, 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.

Windows / Mac

KRISTAL

  • KRISTAL Audio Engine - 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.

Podium Free

MuLab Free

Ohm Studio

Commercial

Bitwig

Tracktion T7

  • T7 - a multi award winning workstation, featuring powerful and creative tools to inspire the modern musician. Unlike typical ‘Lite’ versions, we do not impose any restrictions – you get unlimited track count, powerful features, compatibility with all popular plugins and efficient performance on Mac, Windows and Linux operating systems. Only available as part of our OEM partner sales programs.


Ableton Live

Maschine


Harrison Mixbus

Based on Ardour.

n-Track

  • n-Track 8 - A recording studio in your computer. Studio quality recording, editing and mixing software. n-Track Studio brings you professional audio quality and easy workflow.

Windows/Mac - $

Usine

  • Usine - 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. - $

Undeveloped

Genesis

  • Genesis - 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.

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.

Last commit 2015, buggy

Protux

  • PROTUX Digital Media Workstation - being developed to be a complete Digital Media Production tool, or Digital Media Workstation. We focus on develop it for GNU/Linux users, but it runs in any workstation with a Java >=1.5 VM installed, and even in the web thru a standard browser that supports Java (Believe or not). Protux aims to offer an integrated environment for audio, video and midi production, thru a inovative interface where the productivity is focused.


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.


Ayyi

Very alpha.

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

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".
  • Kmix - an application to allow you to change the volume of your sound card. Though small, it is full-featured, and it supports several platforms and sound drivers. Features: Support for ALSA and OSS sound systems, Plasma Desktop integrated on-screen-display for volume changes


/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 Design - The JACK Audio Connection Kit provides simple transport interfaces for starting, stopping and repositioning a set of clients. This document describes the overall design of these interfaces, their detailed specifications are in <jack/transport.h>


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;


  • Click Tracker - a program designed for composers, conductors and instrumentalists working with modern music. The main goal of the software is to prepare a click track of any score, no matter how complex it is. This software runs in Windows, OSX and Linux under the open source program Pure Data, and can be used either by conductors in concert, by musicians for practice purposes, by composers while composing.

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)


  • RASP - "RASP Aids Song Production" is a set of utilities for song production, supplementing functions missing in some DAWs. Features: Tap Tempo, Delay/Hz Calculator, Song Time Calculator, Note-to-Frequency Conversion, Simple Frequency Generator (v2), Metronome (v2)

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 - simple patched jack_capture, simple patch to the jack_capture example client, that implements silence detection and splitting of output files), 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.

Playback

jplay2

  • https://gareus.org/oss/jplay2/start - 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.

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.
  • K-Meter - Implementation of a K-System meter according to Bob Katz’ specifications.


JACK bitmeter

  • JACK bitmeter - 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

Room EQ Wizard

  • 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.

Gist

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.


  • https://github.com/adamstark/BTrack - a causal beat tracking algorithm intended for real-time use. It is implemented in C++ with wrappers for Python and the Vamp plug-in framework.


  • 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
  • https://github.com/MTG/gaia - C++ library to apply similarity measures and classifications on the results of audio analysis, including Python bindings. Together with Essentia it can be used to compute high-level descriptions of music.

Madmom

  • https://github.com/CPJKU/madmom - an audio signal processing library written in Python with a strong focus on music information retrieval (MIR) tasks. The library is internally used by the Department of Computational Perception, Johannes Kepler University, Linz, Austria (http://www.cp.jku.at) and the Austrian Research Institute for Artificial Intelligence (OFAI), Vienna, Austria (http://www.ofai.at). Possible acronyms are: Madmom Analyzes Digitized Music Of Musicians, Mostly Audio / Dominantly Music Oriented Modules

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.

HMSL

  • https://en.wikipedia.org/wiki/Hierarchical_Music_Specification_Language - a music programming language written in the 1980s by Larry Polansky, Phil Burk, and David Rosenboom at Mills College. Written on top of Forth, it allowed for the creation of real-time interactive music performance systems, algorithmic composition software, and any other kind of program that requires a high degree of musical informatics. It was distributed by Frog Peak Music, and runs with a very light memory footprint (~1 megabyte) on Macintosh and Amiga systems.

Unlike CSound and other languages for audio synthesis, HMSL is primarily a language for making music. As such, it interfaces with sound-making devices through built-in MIDI classes. However, it has a high degree of built-in understanding of music performance practice, tuning systems, and score reading. Its main interface for the manipulation of musical parameters is through the metaphor of shapes, which can be created, altered, and combined to create a musical texture, either by themselves or in response to real-time or scheduled events in a score.

HMSL has been widely used by composers working in algorithmic composition for over twenty years. In addition to the authors (who are also composers), HMSL has been used in pieces by Nick Didkovsky, The Hub, James Tenney, Tom Erbe, and Pauline Oliveros. A Java port of HMSL was developed by Nick Didkovsky under the name JMSL, and is designed to interface to the JSyn API.


Music Mouse

  • https://en.wikipedia.org/wiki/Music_Mouse - an algorithmic musical composition software developed by Laurie Spiegel. Spiegel's best known and most widely used software, "Music Mouse - An Intelligent Instrument" (1986) is for Macintosh, Amiga and Atari computers. The "intelligent instrument" name refers to the program's built-in knowledge of chord and scale convention and stylistic constraints. Automating these processes allows the user to focus on other aspects of the music in real time. In addition to improvisations using this software, Spiegel composed several works for "Music Mouse", including Cavis muris in 1986, Three Sonic Spaces in 1989, and Sound Zones in 1990. She continued to update the program through Macintosh OS 9, and as of 2012, it remained available for purchase or demo download from her website.

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.

Mac/Windows.

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.



  • Blue - An Integrated Music Environment, powered by Csound. An open-source, cross-platform desktop application for composing music. Use visual tools together with text and code to create the music of your dreams.

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.

PortMedia



  • Playrec - a Matlab and Octave utility (MEX file) that provides simple yet versatile access to soundcards using PortAudio, a free, open-source audio I/O library. It can be used on different platforms (Windows, Macintosh, Unix) and access the soundcard via different host API including ASIO, WMME and DirectSound under Windows.

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.

Allegro

  • Allegro - a cross-platform library mainly aimed at video game and multimedia programming. It handles common, low-level tasks such as creating windows, accepting user input, loading data, drawing images, playing sounds, etc. and generally abstracting away the underlying platform. However, Allegro is not a game engine: you are free to design and structure your program as you like. Allegro 5 has the following additional features: Supported on Windows, Linux, Mac OSX, iPhone and Android, User-friendly, intuitive C API usable from C++ and many other languages, Hardware accelerated bitmap and graphical primitive drawing support (via OpenGL or Direct3D), Audio recording support, Font loading and drawing, Video playback, Abstractions over shaders and low-level polygon drawing

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 [31]
  • Sporth - SoundPipe fORTH, is a small stack-based audio programming language. For composers, Sporth is a different approach to making sound. Stack based languages are somewhat novel in the world of musical languages, and lend themselves well to modular sound design scenarios. Sporth syntax is simple to learn, and rewarding to master. Sound designers and composers fluent in languages like Csound, ChucK, and Supercollider will find Sporth a new and refreshing take on the same basic concepts. For developers, Sporth has a simple API that allows it to be used inside of other applications. In addition to compiling Sporth code, the API has access to other features of Sporth that would otherwise be unavailable, such as audio-rate software channels, and user defined function callbacks.


  • http://paulbatchelor.github.io/proj/libline - an ANSI C library for generating audio-rate line segments and curves for computer-based music. Libline can easily interface with sample-accurate audio libraries like Soundpipe, and a local copy is used inside of Sporth via Polysporth.



  • http://paulbatchelor.github.io/proj/moons.html - Moons is an isorhythmic circular sequencer. It is written using a combination of C and C++. All visuals are created using OpenGl; All the sounds are snythesized in realtime using Sporth, Soundpipe, and RTaudio.


mini_al

  • https://github.com/dr-soft/mini_al - a simple library for playing and recording audio. It's focused on simplicity and has a very small number of APIs. C/C++, single file, public domain.

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++


  • YouTube: Ian Hobson - The use of std variant in realtime DSP (ADC'17) - Application Developer & Software Engineer, Ableton .C++17 introduces std::variant, a type-safe union class. A variant's value represents one of a fixed set of possible types, with C++'s type system ensuring that correct code paths are executed for the active type. This talk will explore the pros and cons of working with variants, with a special focus on DSP. Variants allow for well defined interfaces and minimal memory footprints, but what are they like to use in practice, and are they performant enough for realtime use?

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).

DISTRHO Plugin Framework

  • https://github.com/DISTRHO/DPF - designed to make development of new plugins an easy and enjoyable task. It allows developers to create plugins with custom UIs using a simple C++ API. The framework facilitates exporting various different plugin formats from the same code-base. DPF can build for LADSPA, DSSI, LV2 and VST formats. All current plugin format implementations are complete. A JACK/Standalone mode is also available, allowing you to quickly test plugins. Plugin DSP and UI communication is done via key-value string pairs.

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.




  • https://github.com/drowaudio/drowaudio - a 3rd party JUCE module designed for rapid audio application development. It contains classes for audio processing and gui elements. Additionally there are several wrappers around 3rd party libraries including cURL, FFTReal and SoundTouch. dRowAudio is written in the strict JUCE style, closely following the style guide set out at JUCE Coding Standards.

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

DSPFilters

  • https://github.com/vinniefalco/DSPFilters - A Collection of Useful C++ Classes for Digital Signal Processing. "Techniques for digital signal processing are well guarded and held close to the chest, as they have valuable applications for multimedia content. The black art of Infinite Impulse Response ("IIR") filtering has remained veiled in secrecy with little publicly available source code...until now."

Building on the work of cherished luminaries such as Sophocles Orfanidis, Andreas Antoniou, Martin Holters, and Udo Zolzer, this library harnesses the power of C++ templates to solve a useful problem in Digital Signal Processing: the realization of multichannel IIR filters of arbitrary order and prescribed specifications with various properties such as Butterworth, Chebyshev, Elliptic, and Optimum-L (Legendre) responses. The library is provided under the MIT license and is therefore fully compatible with proprietary usage.

Classes are designed as independent re-usable building blocks. Use some or all of the provided features, or extend the functionality by writing your own objects that plug into the robust framework. Only the code that you need will get linked into your application. Here's a list of features: Exclusive focus on IIR filters instead of boring FIR filters, Complete implementation of all "RBJ Biquad" Cookbook filter formulas, Butterworth, Chebyshev, Elliptic, Bessel, Legendre designs, Low Pass, High Pass, Band Pass, Band Stop transformations, Low, High, and Band Shelf filter implementations for most types, Smooth interpolation of filter settings, pole/zeros, and biquad coefficients to achieve seamless parameter changes, Representation of digital filters using poles and zeros, Realization using Direct Form I, Direct Form II, or user provided class, Fully factored to minimize template instantiations, "Design" layer provides runtime introspection into a filter, Utility template functions for manipulating buffers of sample data, No calls to malloc or new, great for embedded systems, No external dependencies, just the standard C++ library!

mopo

Raul

  • http://drobilla.net/software/raul - Realtime Audio Utility Library) is a C++ utility library primarily aimed at audio/musical applications. It is used by Ingen, Patchage, and Machina.

openAudioProgrammingTutorials

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.

Wavelet

  • https://github.com/Ircam-RnD/wavelet - a cross-platform c++ library for online estimation of the Continuous Wavelet Transform (CWT). The online estimation is based on a filterbank implementation of the CWT with minimal delay per scale and optimization based on multi-rate computation. The library also allows for offline estimation of the CWT using FFT.

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)

D

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.

JNAJack

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.

Go

  • https://github.com/200sc/klangsynthese - Waveform and Audio Synthesis library in Go. Klangsynthese right now supports a number of features that will work regardless of OS, and a number of features specific to Windows where the hope is to move support to Linux and Darwin.

Lua

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. [33]


  • 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: [35]

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. [36]


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! [37] [38] [39]

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


  • https://www.ambiera.com/irrklang - a high level 2D and 3D cross platform (Windows, Mac OS X, Linux) sound engine and audio library which plays WAV, MP3, OGG, FLAC, MOD, XM, IT, S3M and more file formats, and is usable in C++ and all .NET languages (C#, VisualBasic.NET, etc). It has all the features known from low level audio libraries as well as lots of useful features like a sophisticated streaming engine, extendable audio reading, single and multithreading modes, 3d audio emulation for low end hardware, a plugin system, multiple rolloff models and more. All this can be accessed via an extremely simple API.

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. [41]

jazzari

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



  • https://github.com/grz0zrg/fas_launcher - A wxWidgets launcher for Fragment Audio Server built for the Fragment Synthesizer, a web-based Collaborative Spectral Synthesizer. This program should compile on most platforms. This program is a simple native launcher which provide an easy to use interface to start the Fragment Audio Server, the launcher also provide a convenient way to configure the audio server for individual sessions and provide a direct way to launch the web. application pre-linked with the native audio server by passing ?fas=1 as a web. argument.


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

Wad

  • https://github.com/rserota/wad - Wad is a Javascript library for manipulating audio using the new HTML5 Web Audio API. It greatly simplifies the process of creating, playing, and manipulating audio, either for real-time playback, or at scheduled intervals. Wad provides a simple interface to use many features one would find in a desktop DAW (digital audio workstation), but doesn't require the user to worry about sending XHR requests or setting up complex audio graphs.

Other

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) - 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 - 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) - 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.

  • http://repmus.ircam.fr/openmusic/reactive - Reactive programming in OM is an intermediate model for visual programming inheriting both the off-line, demand-driven, computation paradigm of OpenMusic, and the reactive features of interactive/real-time systems. The objective is to integrate and control the interactions between the calculi denoted by CAC programs and their external context. In this model visual programming components are capable of "listening" to the environment or to other components, updating contents or triggering calculations accordingly, and propagating changes in a determined way in the program. This "dataflow-oriented" approach implies new semantic definitions, implementation and corresponding user interactions. It is based on the existing OM semantics and conservative with regard to this semantics, so that existing programs created in the environment remain valid in the reactive framework.
  • Musique Lab 2 - Example of a ML-Maquette document about J.-S. Bach's Goldberg Variations, by F. Guédy, IRCAM. Compositional approach to musical processes for music education, Jean Bresson, IRCAM, Music Representations Team. The Musique Lab 2 application (initially called ML-Maquette) has been designed and developed on top of the OpenMusic environment. It makes it possible to create and use interactive pedagogical documents focusing on various kinds of musical concepts or works by manipulating musical structures and operations. Musique Lab 2 is distributed via the EducNet portal for teachers of the French Ministry of education, or via the IRCAM forum. - $
  • http://www.idmil.org/software/omprisma - a library for spatial sound synthesis in the computer-aided composition environment OpenMusic. In addition to working with pre-existing sound sources (i.e. sound files) it permits the synthesis of sounds with complex spatial morphologies controlled by processes developed in OpenMusic in relation to other sound synthesis parameters and to the symbolic data of a compositional framework. While OMPrisma 1.0 focused on compositional control of sweetspot-based spatialization techniques (such as VBAP or Ambisonics), OMPrisma 2.0 introduces new classes implementing spatialization techniques for non-centralized audiences (such as dbap, babo or ViMiC). This allows for reproduction setups with arbitrary loudspeakers placements, e.g. on stage, between the audience, for installations contexts, etc.

Integra Live

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.

Bespoke

AlgoScore

  • AlgoScore - 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.

Geosonix

  • Geosonix - a Performance Environment which means you can build unique sound controlling instruments that can be played in real time, either with MIDI or OSC controllers, or in Javascript with the built in REPL. (Read,Evaluate,Print Loop) If you know what a REPL is you will love this feature! Geosonix is an updated, easier to use, more powerful blend of GeoMaestro and Iannix that also borrows concepts from popular music workstation software. Geosonix is both refreshingly new, and deep, but the the same time comfortably familiar. Mac.

Fugio

  • Fugio - an open visual programming system for building digital art and creative projects quickly, with no programming experience required. Fugio is 100% open source. Hosted on GitHub. Fugio runs on Windows, macOS/OS X, Ubuntu, Arch Linux, and Raspberry Pi.

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

  • Blokdust - an open source web music app allowing you to build synths, manipulate samples and create self-playing sound environments.

AlgAudio

  • https://github.com/rafalcieslak/AlgAudio - AlgAudio is an audio processing framework, designed to be easy to learn and use both at live performances. The user defines a network of signal operations by creating a dataflow diagram. AlgAudio comes with a collection of building blocks, and is easily expandable with custom external modules.

aRts

  • aRts - analog real time synthesizer, an audio framework that is no longer under development. It was best known for previously being used in K Desktop Environment 2 and 3 to simulate an analog synthesizer. A key component of aRts was the sound server which mixes several sound streams in realtime. The sound server, called artsd (d for daemon), was also utilized as the standard sound server for K Desktop Environment 2–3. However, the sound server was not dependent on K Desktop Environment and can be used in other projects. It was a direct competitor to PulseAudio, another sound server, and an indirect competitor to the Enlightened Sound Daemon (ESD). It is now common to use PulseAudio instead of artsd. The aRts platform also includes aRts Builder — an application for building custom layouts and configurations for audio mixers, sequencers, synthesizers and other audio schema via a user-friendly graphical user interface. aRts is free software, distributed under the terms of the GNU General Public License.


SynFactory

  • SynFactory - The Interactive Modular Software Synthesizer. Fully modular, no fixed configuration. Free to route any signal to any module. All signals run at audio rate (44.1 Khz) therefore ultrafast LFO and Envelope modulation. VU-Meters. Output scope. Capture to stereo wave- or mp3-file


SDT / SkAT


StudioFactory

  • StudioFactory - provides a complete virtual audio studio on Windows. It has a very powerfull virtual analog modular synthesizer based on an improved version of the SynFactory synthesis engine. StudioFactory is fully compatible with SynFactory and can load all existing patch files. The synthesis engine is extended with additional modules that give access to MIDI and audio input. This makes it possible to play sounds generated by StudioFactory with an external MIDI-keyboard. With the audio input StudioFactory can be used as an standalone effect processor and provides reverb, echo and vocoder effects.

AudioMulch

  • AudioMulch - 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. - $

Hardware DSP

Axoloti Patcher

hardware - $

Kyma

The first version of Kyma, which computed digital audio samples on a Macintosh 512K was written in the Smalltalk programming language in 1986 by Carla Scaletti in Champaign, Illinois. In May 1987, Scaletti had partitioned Kyma into graphics and sound generation engines and ported the sound generation code to a digital signal processor called the Platypus designed by Lippold Haken and Kurt J. Hebel of the CERL Sound Group. When the University of Illinois at Urbana-Champaign eliminated the funding for the PLATO laboratory in 1989, Scaletti and Hebel formed Symbolic Sound Corporation in order to continue developing Kyma and digital audio signal processing hardware.

Patchblocks


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. LV2.

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.
  • Bandlimited Sawtooth Oscillator
  • Bandlimited Square Oscillator
  • Bandlimited Variable Width Pulse Oscillator
  • Bandlimited Variable Slope Triangle Oscillator
  • Random Wave Generator
  • Mono Amplifier
  • 4 Pole Low Pass Filter with Resonance
  • ADSR Envelope Generator
  • ADSR Envelope Generator with Gate and Trigger
  • DAHDSR Envelope Generator with Gate and Trigger
  • Sequencer
  • Quantiser
  • Clock Oscillator with Gate
  • Clock Pulse Oscillator with Gate
  • Frequency Modulator
  • Control to Audio Interpolator
  • Signal Tracker
  • Signal Sum
  • Signal Difference
  • Signal Product
  • Signal Ratio
  • Signal Branch
  • 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.

SynthForge

VCV Rack



  • https://github.com/mschack/VCV-Rack-Plugins - 3 Channel 16 Step Programmable Sequencer. Mixer 1x4, 2x4 and 4x4 (with EQ, 4xAUX buses, and 2 x amplification ). Triad Sequencer ( v0.4.10 and above will not load notes properly from pre v0.4.10 builds ). Synth Drums. Ping Pong Delay (with Gnip Gnop mode). 3 Channel Oscillator with Filter and Amp Envelope

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. Windows.

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. [52] patch in milkmiruku/stegosaurus

DrumSynth

Features:

  • 32 voices polyphonic
  • 24 drum notes (2 octaves mapping)
  • 1 tone with sweep
  • 2 overtones
  • 3 noize generators
  • envelope editor
  • midi automatable with learn function
  • import/export of DS files


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." [53]

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?

Windows VST

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

Optik

  • Optik - a basic, yet interesting drumsynth with it's own unique sound. It's got 7 drums, multiple outputs and an onboard mixer. Each drum panel can be opened to reveal additional controls for further tweaking. Windows VST.

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.

easy-toolz.de drums

  • easy-toolz.de drums
    • easy-drum X8 - an analog Vintage-style drum-module with 12 fully synthesized instruments and some additional features: -12 X 16 Step-Sequencers with Potis >modulations all Parameters - Distortion - Lofi - SV-Filter - Lfo a.m.more
    • easy-beat-box - It is a "only with the mouse" using Drum-machine machine with the following specs: - 4 Drumslots a 16 Steps Sequencer - 4 Soundbanks ( mixed 1+2, fx, 8o8 ) 64 sounds each - Joystick manipulates : Horizontal > Pitch (Sounds) Slotwise - Vertical > Cutoff - Res - Drive - Flanger - Lofi - Hostsynchron - NO Midi-Input scheduled!
    • easy-kick - Kick-Drum with 10 Bassdrum-samples-Tunning Bitcrusher -4 Filter Overdrive -A-D- Envelope - Reverb
    • easy-drum o4 SE 909 - 4 Slot Drumbox with 909/808-Samples - overdrive-flanger-bitcrusher-moogfilter - 3 lfo -> modulated tune-cutoff-pan - 32 Patches

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.


old interface:

zyn-fusion interface:


  • zyn - 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.

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. [54]

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

  • Newtonator - an LV2 soft synth that uses a unique algorithm based on simple ideas of velocity and acceleration to produce some unpredictable sounds. Being an LV2 synth, it only works on Linux, and at the moment there is only an LV2 synth plugin; there is no stand-alone version.

Obxd

  • Obxd - Emulation of famous OB-X, OB-Xa and OB-8 synths


synthv1

  • synthv1 - 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

padthv1

  • padthv1 - an old-school polyphonic additive synthesizer with stereo fx. padthv1 is based on the PADsynth algorithm by Paul Nasca, as a special variant of additive synthesis. Features: pure stand-alone JACK client with JACK-session, NSM and both JACK MIDI and ALSA MIDI input support; 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

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

Synister

Peggy 2000

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

Paraphrasis

  • https://github.com/falkTX/Paraphrasis - spectral modeling synthesizer. It is licensed under GPL v2 or any later. Paraphrasis uses these libraries under thier license terms: JUCE (GPLv2, GPLv3, AGPLv3, ISC), Loris (GPLv2), Teragon GUI Components, (GPLv2) TinyThread++ (zlib), sse_mathfun (zlib), Teragon PP (FreeBSD), readwriterqueue (FreeBSD), arduino-base64 (MIT/Expat), dbRowAudio (MIT/Expat), dbRowAudio dependency: SoundTouch (LGPL v2.1), dbRowAudio FFTReal (WTFPL).

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

Xiph

  • Xhip - a free software subtractive/hybrid synthesizer available for download as a plug-in. It correctly implements those features considered essential to a synthesizer capable of a wide variety of classic "bread and butter" sounds. Users of classic synthesizers should find it very comfortable and familiar as well as extremely fun to use. [55]

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.

Sprike

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.

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.

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. LV2

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

  • lv2_guitar - a simple plugin that is capable of physically simulating the vibrations of a guitar string using the Functional Transformation Method. The plugin is playable via MIDI. It is based in part on the VST-plugin 'FTM String' by Daniel Maaß, on the VST-plugin 'FTM Psycho String' by Alexander Müller and on the LV2-plugin 'Simple Sine Generator' by Nedko Arnaudov.

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.

GuitarSynth-DPF

  • GuitarSynth - 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. Required: libjack, aubio

Diodow

  • Diodow Virtual Software Synthesizer - contains around 5% capabilities/features of it's mighty bigger brother - Tranzistow. But don't worry, despite those 5% it has enough capabilities to keep you busy for quite some time and very complex sounds can be made with 4x oscillators, 4x filters, 4x LFOs, 4x 5-stage envelopes, 16x+16x modulation matrix, 4x delays, etc.

Tranzistow

  • Tranzistow - a virtual software synthesizer with 4 or 8 independent multi parts. Although it is (to some extent) inspired by Waldorf Q, Waldorf Microwave II/XT, Alesis Andromeda, Oberheim Xpander, John Bowen Solaris and Yamaha DX series, it has a unique sound and tons of unique features not found on any other synthesizer. Various forms of synthesis are supported including Additive, Virtual Analog/Modeling (VA), Wavetable (with classic, crossfade and full wave interpolation modes), two completely independent FM engines, Ring Modulation, Oscillator Sync, Vectors, Rotors (as in Solaris), various filter models (SVF 12/24dB, 6dB to 24dB Transistor Ladder with fully configurable poles, 24dB Diode LowPass Ladder, ...), Filter Chaining, Comb Filters, WaveShaping, freely drawable Contour Generators, exhaustive FX section including Chorus/Flanger, Phaser, Delay and Reverb units, etc, etc. - $

jackpunkconsole

  • https://github.com/switryk/jackpunkconsole - a sound synthesizer that emulates an Atari punk console. It is written in C and uses the Jack Audio Connection Kit. It has a Gtk3 interface and a midi connection through Jack, so it is possible to play sounds with a midi device. As it uses Jack for audio, it is possible to redirect the sound in a FX processors, recorders, or anything from fun to useful.

Xhip Follower

  • Xhip Follower - The Xhip synthesizer filter controlled by a HAR envelope follower.

Chiptune

ftz Chiptune


synthem80

SocaLabs 8-bit synths


vst2413

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.

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. Each carrier frequency can be modified for construct complex sounds. The synthesizer incorporate also a LFO (Low frequency oscillator) for generate tremolo effects and detune effects applying LFO Pitch and Amplitude to the carrier frequency's. Some synthesizer parameters can be edited for each sound including two ADSR, (Normal and Percussion), Fine Frequency, Attenuation, Rotary Amplitude, Transpose, etc. Four DSP effects are available for obtain more complex sounds, Rotary, Chorus, Delay and Reverberation. Sounds are stored in banks of 32 organ sounds and can be changed externally with MIDI program change (1-32).

Organteq

  • ORGANTEQ Alpha - a new generation physically modelled pipe organ that reproduces the complex behaviour of the organ flue pipe. It is a small organ with a keyboard range of 4 octaves (from F1 to F5) and with 2 stops: a Flute 8' and a Flute 4' (octave).

It is provided in standalone mode only and should be regarded as a foretaste of a more advanced commercial version in development, due to be released during 2018.

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.

Connie

  • https://bitbucket.org/horo/connie/wiki/Home - Simple simulation of an electronic organ like e.g. Vox Continental. This project is a toolbox for creating an electronic organ program with JACK MIDI input and JACK audio output for Linux. Connie is a JACK application. It has one MIDI input and a stereo audio output.

EplayOrgan

  • EplayOrgan - a brand new multi purpose organ by David Back, November and December 2017, intended to be playable by organists and versatile enough to be useful to everybody with an interest in organs. It will load and be playable almost instantly and does not need an expensive computer with huge amounts of memory. eplayOrgan was designed and tested on a 64 bit Windows 10 system but was always intended to be versatile in that it will run on any Windows system back to and including Windows XP. It will also run on any Mac or Linux system under Wine. All the basics are in place for producing native Mac and Linux versions in due course. Latency is negligable under Windows.

Windows VST

SQ8L

  • SQ8L - an SQ80-emulating VSTi. Runs on Linux via Wine, but not on Windows????????


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.

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

  • SmallQoo - 8voice poly Compact Synth. Win VST.

Metatron

  • Metatron - a 2 oscillator analog synthesizer with an arpeggiator that works alongside a gated modulation sequencer for creating unique rhythmic patterns and sounds. The oscillator section uses waveforms that double up to create a phasing effect similar to pulse width, but for each waveform. This along with a powerful unison detune section and ring modulator give Metatron a rich, fat sound. With the addition of versatile graphical envelopes, LFOs and other modulation options, Metatron becomes an instrument that can create complex sounds, but at the same time keeps it simple without trying to do everything, making it a perfect 'go to' synth for one-finger basslines, rhythmic techno leads, spacey gated pads and other creative arpeggiated sequences. Win VST.

Photon

  • Photon - a hybrid synth with an with an experimental 'warp' engine for creating evolving rhythmic sequences, random arpeggios and classic Sample&Hold style arcade weirdness. Win VST.

Subconscious

  • Subconscious - Hybrid Sequencer Synth. Subconscious is a dual arpeggiation sequence synth with oscillator crossfading, feedback modulation, and independent filter and amp envelopes for both oscillator sections. Subconscious has two different onboard sequencers, a gate sequencer and a modulation sequencer, which can be used for stepped sequences, gated pads and modulation of the pitch and filters. Win VST.

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

Dream 64

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.

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

DOS

Various


Modelled instruments


  • https://github.com/paulbatchelor/voc_demo - A realtime demo of Voc, a vocal tract physical model. With the exception of RtAudio (released under the permissive STK license, included here), all code here is licensed under public domain.


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

Neural net

Sounds and samples

  • https://en.wikipedia.org/wiki/Sample_library - a collection of digital sound recordings, known as samples, for use by composers, arrangers, performers, and producers of music. The sound files are loaded into a sampler—either hardware or software-based—which is then used to create music. Sample libraries appear in a variety of forms: As a tempo-based musical phrase that can be looped (repeated in tempo with the arrangement), or edited in a cut and paste collage fashion; Collections of note-by-note recordings of musical instruments for playback on a digital sampler, known as multi-samples. This method of sample playback is to construct a playable instrument, or emulation of another instrument, from a sampler or computer; One-shot hits or stabs of non-tempo-based audio, particularly for sound effects.


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


  • KB6.de... Free Drum Samples - 287 Drum Sets / 32.252 WAV Samples / 4.95 GB. This is the worlds largest Free Drum Samples Library on the Web!


  • 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. [61]


  • 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.




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

Corpus




  • British National Corpus - BNC is a 100 million word collection of samples of written and spoken language from a wide range of sources, designed to represent a wide cross-section of British English, both spoken and written, from the late twentieth century





  • Dunya - comprises the music corpora and related software tools that have been developed as part of the CompMusic project. These corpora have been created with the aim of studying particular music traditions and they include audio recordings plus complementary information that describes the recordings. Each corpus has specific characteristics and the developed software tools allow to process the available information in order to study and explore the characteristics of each musical repertoire.

Stems

Historical

Sampler

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

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!

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.

Multi-Sampler x48 Stereo

  • Multi-Sampler x48 Stereo - implements 1-instrument MIDI sample player with stereo input and stereo output. For each instrument there are up to eight samples available to play for different note velocities.

aucat

Chionic

  • Chionic - advanced sampler for Linux. It is not meant for loading existing sampler formats (sf2/gig/akai/etc) – though making an importer could work – The main idea behind Chionic is that you can make your huge patch libraries, with thousand of patches, and then make multitimbral songs using up to 64 midi channels. All this with only one instance of chionic, and using on-demand loading. Last developed 2005.

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.

Ninjas

  • https://github.com/rghvdberg/ninjas - Ninjas - Ninjas Is Not Just Another Slicer. Creating a sample slicer plugin using DPF framework. Most (all?) crashes resolved at the moment. There are still a lot of things not implemented yet though. Look at the issues and feel free to report bugs, features and so on.

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

JTrigger

  • JTrigger - A drum machine/sample player for midi input. I've left out the sequencer and the plugin support because it can be done by other, better programs if it is needed. This is a true unix program - does one thing, and does it well. You can get effects support by running it through something such as Jack-Rack. Each sample conviently has it's own JACK output port to make your life easier. No matter how much time I spend, it's likely that I won't exceed the capabilities of a dedicated sequencer such as Seq24 without greatly increasing the size and resource usage of this program.

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

TX16Wx Software Sampler

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.
  • sfpack - .sfpack sfArk compression


  • One-Shot SFZ Mapper - web tool instantly generates an SFZ file with a one-to-one mapping. Each sample will be assigned to its own key, beginning with the selected key on the pianoroll.


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



  • Gigedit - a graphical instrument editor for sample based virtual instruments, based on the GigaStudio/Gigasampler file format. The GigaStudio/Gigasampler (.gig) file format is one of the major sampler formats supported by LinuxSampler and hence you can use Gigedit both as stand-alone instrument editor, or in conjunction with LinuxSampler for editing such instruments "live" while playing them with the sampler.
    • http://doc.linuxsampler.org/Instrument_Scripts/NKSP_Language - NSKP is a script language specifically designed to write real-time capable software extensions to LinuxSampler's sampler engines that can be bundled individually with sounds by sound designers themselves. Instead of defining a completely new script language, NKSP is leaned on the Kontact's KSP properiatary script language.


  • libgig - a C++ library for loading, modifying existing and creating new Gigasampler (.gig) files and DLS (Downloadable Sounds) Level 1/2 files, KORG sample based instruments (.KSF and .KMP files), SoundFont v2 (.sf2) files and AKAI sampler data. The source code package includes a couple of command line tools based on the library. The library and tools are released in source code format under the GNU General Public License, except the AKAI classes which are released under the GNU Lesser General Public License.

DrumGizmo

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

LinuxSampler

  • LinuxSampler - modular design, 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


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.
  • http://freshmeat.sourceforge.net/projects/gluid - a very small graphical interface to fluidsynth with minimal features. It runs in the system tray. It allows you to set the audio and MIDI drivers, toggle reverb and chorus, and start fluidsynth. 2009

DrumGizmo

  • DrumGizmo is an open source cross-platform drum plugin and stand-alone application. It is comparable to several commercial drum plugin products. Features include: Stand-alone, Lv2 and VSTi versions available. Open drumkit file format, allowing the community to create their own drumkits. Drum velocity, allowing for several different hit velocities for each drum. Multichannel output, making it possible to mix it just the way you would a real drumkit. Optional built-in humanizer, analyzing the midi notes, adjusting velocities on-the-fly. Stand-alone midi renderer, generating .wav files, 1 for each channel. Stand-alone midi input, making it possible to use DrumGizmo as output for an electronic drumkit.
drumgizmo -i jackmidi -o jackaudio [drumkitfile.xml]



  • DGEdit - the DrumGizmo drumkit editor

DrMr

  • DrMr - LV2 sampler plugin that plays Hydrogen kits. 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.

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 [64]

SFZero

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 - Windows, macOS only

Sobanth

  • Sobanth - the soundbank instrument for Windows systems Finally available for your home computer: The brand new software multitimbral soundbank instrument VSTi – programmed by Benjamin »BeRo« Rosseaux. Since it is in the beta state you may encounter incompatibilities with some VST hosts. This version is successfully tested with BeRoTracker and Reaper.

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.
  • Guitar & Bass Virtual Instruments - Fender BG29 Acoustic/Electric Bass, This fantastic SoundFont was originally created by Marc Wielogroch. It includes multi-samples and release samples as well. There aren't a lot of SoundFonts that make use of release samples, so kudos to Marc for including them here! I haven't made any changes to this SoundFont except to tune the samples. I had noticed they were quite off-pitch when I tried to use the bass in a project of mine. Musical Box Fingered Bass
  • SCC Expressive Strings - a virtual string ensemble programmed for maximum expressiveness. To get the most out of this library, it is recommended to have an expression pedal connected to an 88-key MIDI keyboard. The samples have been collected from various free SoundFont banks I have found online. More details on this can be found in the readme.txt file inside the download.
  • SCC Taiko Drums - Free Taiko Drum Rack by Subaqueous. Unfortunately, none of my students use Ableton, so I decided to use the samples to create an SFZ instrument instead. I also added some samples I found on freesound.org.



  • Soundfonts 4U - Free Quality SoundFonts (sf2) - bs-16i SoundFonts. This aim of this site is to provide high quality SoundFonts (virtual musical instruments in sf2 format) that can be played using a midi keyboard connected to a computer, tablet or smart phone. Emphasis has been placed on real or acoustic instruments particularly piano and other favourites for keyboard players (pads, strings, electric pianos, organs and orchestral) but some SoundFonts here also include high quality guitars, some synths and ethnic instruments. There is also a nice GM set for playing general midi files. The SoundFont format sf2 is widely supported by lots of programs/apps and devices.
  • TitanicSF - At last, here's Titanic, not just another GM soundfont but one of the greatest compilations from the net with whole new sounds..., in all, 1870 waveforms, 208 MB, 276 instruments, 176 melodic presets and 16 percussion kits.
  • 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/Stereo_imaging - the aspect of sound recording and reproduction concerning the perceived spatial locations of the sound source(s), both laterally and in depth. An image is considered to be good if the location of the performers can be clearly located; the image is considered to be poor if the location of the performers is difficult to locate. A well-made stereo recording, properly reproduced, can provide good imaging within the front quadrant; a well-made Ambisonic recording, properly reproduced, can offer good imaging all around the listener and even including height information.



  • 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 [65] 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.
  • A1StereoControl - expand or limit the STEREO WIDTH of your tracks using only one single knob. This powerful technique can be used on single tracks or groups tracks while mixing or even on a master bus in final mastering situations. Windows/Mac

Quadraphonic

Surround sound



  • http://gareus.org/oss/panjack/start - PanJack implements a real-time surround-sound panorama mixer. one or more audio input(s), two or more audio outputs / speakers, control via OSC or MIDI. (optional) bcf2000 fader/pan control. Note: Jack-Transport needs to be rolling in order for panjack to process audio. It creates jack-audio input and output ports and routes audio with a latency of 1 jack-cycle, applying a amplifications depending on faders and panorama-gain. The panorama-gain settings can be adjusted manually for each output channel or be modified indirectly using built-in maths for 2D (angle, separation) or X/Y-distance panning. Furthermore there is built-in functionality to automate whirl/leslie-rotate effects. panjack itself does not provide sequencer capabilities. Yet this feature can be archived easily by controlling panjack via OSC and any OSC-sequencer

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 [68]

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 [69]


  • sonfilade - allows the user to rapidly strip junk audio from the beginning and end of audio files. It can be used, for example, to clean up files recorded with Streamripper (e.g., streamripper --xs_padding=5000:5000). Sonfilade is designed to be as effortless and fun as possible to use. An entire edit session can be carried out using only three keys and sound feedback as the entire user interface. (There is also text output, but it is non-essential.) Uses sox.

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.
  • ATS is a software library of functions for spectral Analysis, Transformation, and Synthesis of sound based on a sinusoidal plus critical-band noise model. A sound in ATS is a symbolic object representing a spectral model that can be sculpted using a variety of transformation functions. Spectral data can be accessed trough an API, and saved to/loaded from disk. ATS is written in LISP, its analysis and synthesis algorithms are implemented using the CLM (Common Lisp Music) synthesis and sound processing language.


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.

SMS Tools

  • Spectral Modeling Synthesis Tools - SMS Tools is a set of techniques and software implementations for the analysis, transformation, and synthesis of musical sounds based on various spectral modeling approaches. These techniques can be used for synthesis, processing and coding applications, while some of the intermediate results might also be applied to other music related problems, such as sound source separation, musical acoustics, music perception, or performance analysis. The basic model and implementation were developed by Xavier Serra as part of his PhD thesis published 1989. Since then many extensions have been proposed at MTG-UPF and by other researchers.

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

$

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 - 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 - 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 - 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 - 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


VLevel

  • VLevel - 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 - a 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

  • http://users.notam02.no/~kjetism/radium/compressor_plugin.php - The system compressor in Radium is also available as an independent audio plugin. The unique interface: Accurately visualize the sound compression. Rapidly helps you find good compressor settings. With the Radium Compressor, you spend less time listening and finetuning. The interface quickly makes you find the sound you want. Other Features: Top class audio quality. The DSP code is implemented by Julius O. Smith III. Julius O. Smith III is a professor in Music and EE at Stanford University, and he is one of the legends in audio research. The compressor is based on code Julius has written for Faust. OSS/$

Visual Compressor

Molot Lite

Xhip Compressor

  • Xhip Compressor - designed to loosely model a circuit I designed myself. It is like a pedal or what you might find in a channel-strip. It isn't designed to function as a limiter and it doesn't have instant response, look-ahead, low distortion or any of that stuff. That is exactly what makes it useful.

Xhip Limiter

  • Xhip Limiter - A counterpart to the compressor for limiting with the most simple design possible. This limiter is designed for maximal sustain and minimal distortion. It aims to be as transparent as possible in terms of timbre without using any advanced techniques.

nova67p

  • nova67p - a parallel parametric equalizer plugin combined with a compressor. The compressor can optionally operate in frequency dependent and split-band modes. In this case the plugin operates as a parallel dynamic equalizer.

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

  • GTA - a vintage style ‘character’ compressor, designed like its muscle car name-sake for brute power, pure speed and to make a loud noise. It is stripped down for ease of use and has a unique vintage colouring on top.

Rough Rider 2 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.

MLimiter

W1 Limiter

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

VeeMax

Gate

  • abGate - 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.
  • Xhip Gate - A gate effect including side-chain input and a few other additional features. Ideally the trigger/threshold detector and envelope generator would be separate plug-ins, although this is not so practical in the majority of cases. Instead a general-purpose AhR envelope is used.


  • GT10QM / GT10QS - Versatile noise-gate plugin with mono (M) and stereo (S) versions. This plugin provides the usual controls in a dynamic gate processor: threshold, range, attack, release and hold. But also features some extra parameters to allow an accurate adjustment. The gain control is useful to bring the input sound level in the correct VU meter range to be able to tune the threshold right. Even though the internal processing is performed in floating point at 32 bits, it’s helpful to adjust the input gain in a standard range to achieve an optimum level visualization. Together with VU meter, there is also a gain reduction meter that aids to set up the controls. Besides the power of dynamic section controls (DYN), there is also a filtered side chain section (SC). Here it is possible to adjust a low pass filter (LPF) and a high pass filter (HPF) and listen the actual side chain signal after filtering with the “Key” button. This side chain flexibility is very interesting to avoid unwanted noises to start triggering the gate.



Windows/Mac

  • moot - a flexible audio mute plugin with a number of additional features. The mute switch (Hit Me) can be assigned to a single midi keyboard key and act in 3 ways: as a latch (one press mute, release stays muted, next press unmute, release stays unmuted), in default mode (hold down to mute, release to play audio), in invert mode (hold down to play audio, release to mute). Windows VST2.
  • gator - creates a random steppy, gated effect, triggering volume between 2 adjustable values by a tempo-sync'd probability-based step sequencer. An LFO can modulate the volume when triggered and trigger pulse length, attack and release can shape the sound. Windows VST2
  • 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. PC VST format and MAC VST and AU formats.


  • A1TriggerGate - "There are many sequenced / rhythmic gates out there, but honestly nothing really satisfied me yet. So I decided to write my own plugin for this task..." - Windows/Mac

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.
  • Protoverb - an experimental reverb based on the idea of a "room simulator". Most algorithmic reverbs try to avoid resonances or model the reflections of sound from a rooms walls. Protoverb does the opposite. It builds up as many room resonances as possible, modeling the body of air in the room. It therefore does not need to modulate or colour the signal. The result is a very natural sounding reverbration with some interesting features: Long standing frequencies resonate louder, as if the air takes some time to get excited. Multiple instruments don't mash into a diffuse mud, they stay distinct. If you play a short melody, the room seems to repeat a ghost echo of that melody. Those properties are indeed found in churches and large halls, but they're rarely found in conventional algorithmic reverbs.
  • Xhip Reverb - A reverb effect designed to avoid an ultra-smooth fade-to-noise decay.


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.
  • Xhip mDelay - dual delay with stereo, cross and ping-pong modes. It has an LFO and can be used to create anything from flangers and chorus to ordinary delays and strange detuned echos all the way up to extreme pitch modulation effects.
  • https://github.com/qbroquetas/IV-XDelay - a free and open source delay VST effect modelled after a renowned vintage tape recorder. Its aim is to provide music producers with a fun and useful tool that sounds and works like vintage tape echo boxes, as well as to serve as an educational tool for anyone interested in audio development and digital signal processing.


  • 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.



  • Xhip Tremolo - a standard tremolo with the addition of a couple features. One is that it has phase adjustment for the LFO, allowing it to produce a "wide" tremolo panning effect. Second is that the waveform can be adjusted between pulse-like, linear and saturated which produce different characters mimicking various old tremolo effects.

Phaser

  • Xhip Phaser - standard phaser effect with a variable number of stages. This phaser doubles as a frequency dependent delay, chorus effect and vibrato because it allows you to use up to 128 stages.

Filter

https://sourceforge.net/projects/teliasopia - Lv2 plugins with GUI

  • 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.


  • Xhip Vocal - A simple phoneme synthesizing filter made from several parallel formant filters. This filter provides AEIOU formants with control over center frequency and Q with smooth interpolation between formant sets with the phoneme control.


  • 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


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.

Rotating speaker

  • http://x42-plugins.com/x42/x42-whirl - x42-whirl is a designed to imitate the sound and properties of the electromechanical rotating speaker device that brought world-wide fame to the name and products Don Leslie. It is a standalone version of the effect that came to be with the setBfree synth. Rather than simulating the net effect of the electromechanical device, x42-whirl physically models the properties, which results in very accurate representation of the sound of the real device. Since all individual parts are modelled, x42-whirl not only provides advanced control, but also facilitates customizations, some of which are not feasible in the mechanical device.

Distortion

  • 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.
  • FuzzPlus3 - vintage fuzz pedal model, plus a new filter, self-feedback, and a modern procedural user interface. Windows/Mac
  • 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. Windows VST.
  • 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. Windows VST.



  • SynthTrack - 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. Windows/Mac VST.

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. macOS AU/VST, Win VST 32-bit/64-bit.

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.

ExEf

  • 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. It supports both recording an post-processing. For easy start, try some presets! Requirepments include PC - Pentium MMX or above (Alpha may work as well), Full duplex soundcard.

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
  • Computer Music Toolkit (CMT) is a collection of LADSPA plugins for use with software synthesis and recording packages on Linux. See the license before use.


  • 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.


  • Svep Phaser - Flanger - Chorus (VST + AU + AAX) - Svep is a stereo modulation filter effect suitable for any sound. All parameters are easily editable in one screen and the clean and responsive user interface encourages creativity. Tweak it to produce anything from old-school phasers to subtle choruses.
  • SyndtSphere - VST + AU. basically a sphere version of the polyphonic synthesizer Syndt. With a minimalistic approach, it features a unique experience of ”surfing” between presets. All parameters are morphed according to the proximity of the different presets. By rotating a sphere that consists of more than 70 professionally created states, anyone can dial in the perfect sound without having to deal with specific parameters. In addition to the sphere, a ping-pong delay and a few more global settings are available.



  • 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.


DeLooper

Midi-Clock Mode, Record and Loop Length separated, Erase parts of the loop, Delay mode (via feedback), Simple mix (via mute and volume)

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.


Pywheels

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 due to libsndfile [73].

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 [74]

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.

Hourglass

  • HourGlass - a standalone application intended for radical sound processing by taking fragments (more commonly referred to as "grains" in other similar software) from sound recordings, to create sound textures. It is not intended for minor transparent corrections of playback speed or pitch, but is rather placed firmly in the sound mangling/glitch territory.

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

  • Themefinder - provides a web-based interface to the Humdrum thema command, which in turn allows searching of databases containing musical themes or incipits.



  • The Humdrum Toolkit - Software for Music Research. David Huron created Humdrum in the 1980s, and it has been used steadily for decades. Humdrum is a set of command-line tools that facilitates musical analysis, as well as a generalized syntax for representing sequential streams of data. Because it’s a set of command-line tools, it’s program-language agnostic. Many have employed Humdrum tools in larger scripts that use PERL, Ruby, Python, Bash, LISP, and C++.

to sort

  • Abjad - helps composers build up complex pieces of music notation in an iterative and incremental way. Use Abjad to create symbolic representations of all the notes, rests, staves, tuplets, beams and slurs in any score. Because Abjad extends the Python programming language, you can use Abjad to make systematic changes to your music as you work. And because Abjad wraps the powerful LilyPond music notation package, you can use Abjad to control the typographic details of the symbols on the page.


  • Notezilla - web tool that successfully brings high quality audio and sheet music together. Our sheet music is synced to real recordings, so users can listen to the recording of a piece while easily studying the underlying sheet music. [75]


  • PianoBooster - a free (Open Source) program that plays Standard Midi Files and allows you to change the speed of playback and transpose the music etc. There is a scrolling musical stave that shows the notes for just one part from all the parts in the complete musical arrangement. PianoBooster is a fun way of playing along with a musical accompaniment and at the same time learning the basics of reading musical notation. The difference between playing along to a CD or a standard midi file is that PianoBooster listens and follows what you are playing on a midi piano keyboard.


  • Midi Sheet Music - a free program that plays MIDI music files while highlighting the piano notes and sheet music notes. Works on Windows, Mac OS X, and Ubuntu Linux.


  • Jniz - a free proprietary piece of software designed for musicians as a support tool to the musical composition. It allows you to build and to harmonize several voices according to the rules of classical harmony.


  • Noteedit - an editor for music notation that supports an unlimited number of staffs and up to 9 voices per staff. You can use it to create sheets of notes. You can import and export into many formats like midi, musicxml and lilypond.
  • NtED - marks the return of Dr. Joerg Anders into the field of Linux music notation software. Professor Anders is perhaps best known for his pioneering NoteEdit.


  • LiederNet Archive - the world's largest reference archive of texts and translations of art songs and choral works.

We have been online since May 24, 1995.

  • Aered - a sheet music editor specifically designed for drummers. Thanks to the exclusive focus on drum notation, Aered’s interface is simple and straightforward: As you move your mouse cursor over the music, you see a real-time preview of what the notation would look like if you placed a note there, including automatic placement of rests, beams, stems, flags etc. You can therefore place notes with single clicks and be certain to achieve your musical intent each time.


  • Verovio - a fast, portable and lightweight library for engraving Music Encoding Initiative (MEI) music scores into SVG. Verovio can be used as a standalone command-line tool for converting a MEI files, as the music rendering library for applications, or it can be compiled to Javascript using the Emscripten LLVM-to-JavaScript compiler.



  • Impro-Visor - short for “Improvisation Advisor”, is a music notation program designed to help jazz musicians compose and hear solos similar to ones that might be improvised. The objective is to improve understanding of solo construction and tune chord changes. There are other, secondary, things it can do, such as improvise on its own. It has also been used for transcription. Because rhythm-section (e.g. piano, bass, drums) accompaniment is automatically generated from chords, Impro-Visor can be used as a play-along device. Now having a wider array of accompaniment styles, its use is not limited to jazz.


  • 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.


  • LenMus Phonascus is a free open source program (GPL v3) for learning music. It allows you to focus on specific skills and exercises, on both theory and aural training. The different activities can be customized to meet your needs.


  • Denemo - 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. Denemo uses LilyPond which generates beautiful sheet music to the highest publishing standards.
  • Nootka - 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.


  • mingus is an advanced, cross-platform music theory and notation package for Python with MIDI file and playback support. It can be used to play around with music theory, to build editors, educational tools and other applications that need to process and/or play music. It can also be used to create sheet music with LilyPond.
  • BMC - the Braille Music Compiler, parses braille music code and transcribes it to several digital music notations formats. Currently, export to LilyPond and MusicXML is implemented.


  • INscore - An environmnent for the design of interactive, augmented music scores. INscore extends the music representation to arbitrary graphic objects: Symbolic music notation [ GMN, MusicXML], Textual elements, Bitmaps [jpg, gif, tiff, png,...], Vectorial graphics (rectangles, ellipses, SVG,...), Video files, Sound and gesture graphic representations


  • Canorus - a free cross-platform music score editor. It supports an unlimited number and length of staffs, polyphony, a MIDI playback of notes, chord markings, lyrics, import/export filters to formats like MIDI, MusicXML, ABC Music, MusiXTeX and LilyPond


  • Guido Engine Library - 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.


  • Antescofo~ - a modular polyphonic Score Following system as well as a Synchronous Programming language for musical composition. The module allows for automatic recognition of music score position and tempo from a realtime audio Stream coming from performer(s), making it possible to synchronize an instrumental performance with computer realized elements. The synchronous language within Antescofo allows flexible writing of time and interaction in computer music.



  • 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.


  • StaffPad - a brand new class of notation app, designed to take advantage of the active pen and touch input found on Microsoft Surface* and other compatible Windows 10 devices. - $

ABC

Vexflow


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).

DLS

  • http://www.vgmpf.com/Wiki/index.php/DLS - DownLoadable Sounds (DLS) file format was firstly created by Interactive Audio Special Interest Group (IASIG) in 1990 and continued by MIDI Manufacturers Association (MMA) later. The file doesn't store music, but it does contain the digital audio samples for instrument collections. Some audio hardware has native DLS support for wavetable synthesis, for example: Creative Sound Blaster Live! Analog Devices SoundMAX series (AD1888, AD1980, AD1985, etc.). Since not many sound cards have native DLS support, Microsoft has developed DirectMusic Synthesizer, firstly bundled with DirectX 6.1, which uses DLS sound banks by design. Also the DirectMusic proprietary format was created to extend MIDI capabilities.

Mainly DLS is used in music formats like RMI or SGT, but some games can use it to store sound effects.

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.
  • modarchive.org - The MOD Archive, one of the world's largest collections of music modules. The Mod Archive is currently enjoying its 20th year online and is still as active as ever. Whether you're a budding musician, established scener, avid module fan or just a casual passerby we warmly welcome you and hope you enjoy your stay.


  • https://github.com/NewCreature/Original-Music-Organizer - OMO currently supports playing back files in these formats on all supported platforms: MP3, MP2, MPG, MOD, S3M, XM, IT, 669, AMF, MTM, OKT, PSM, PTM, STM, WAV, OGG, FLAC, AY, GBS, GYM, HES, KSS, NSF, SAP, SPC, VGM, and VGZ. Additional support for these formats is available on MacOS: MP4, M4A, AAC, and MID.
  • http://xmp.sourceforge.net - Extended Module Player, or xmp, is a portable command-line module player. Xmp plays many mainstream and obscure module formats including Protracker (MOD), Scream Tracker 3 (S3M), Fast Tracker II (XM), and Impulse Tracker (IT). Starting at release 4.0 xmp will be split into two different packages, a library and a player application. This version has many improvements over the 3.5 player, including extensive code refactoring, improved IT support, better sound quality, more built-in decompressors and many bugfixes.
  • http://sasq64.github.io/chipmachine - Chipmachine Music Player, Multiformat music player, Fullscreen demo-like GUI, Incremental search of ~500,000 songs, Downloads all music on the fly, For Raspberry PI, Linux, Mac OS X

MIDI

See #MIDI

ABC

MusicXML

MuseData

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. [78]

Instrument

Yamaha DJX:


"Example: When the key of 'C' is selected as the Root Note, pressing any white key to the left of it will produce the C7 chord. The C note together with any black key to the left of it will produce a Cm chord. The C key together with any white and black key to the left of it (three keys together) will produce the Cm7 chord."


  • 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.
[79]


Projects

Beat707


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.



  • NOTEMIDI - a Linux interface for MIDI output via the RS-232 serial port on notebook (laptop) computers. NOTEMIDI can be used with external MIDI keyboards/sound modules that have a serial interface (such as the Roland Sound Canvas or Yamaha MU-x series sound modules) or the the MIDIator MS-124W Serial-to-MIDI interface. October 10, 2002. NOTEMIDI has been deprecated for a very long time and I no longer support it.

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.




MIDIpal


smartbcr2k
  • https://github.com/echolox/smartbcr2k - Smart Midi Controller Interface (SMCI). The aim of this project is to create a framework to augment any Midi controllers with more intelligent features like: Simulate more controls than the device actually has; Different behavior and functionality of controls (buttons, dials, etc.) based on Views/Pages; Automation of values (think of LFOs on Control Changes before we even hit the DAW); Save and load snapshots of the current values; Mapping controls to behave like other controls to create Macros; The only requirements for a Midi controller for all of this to work are: Has to allow Control Changes to be sent to the unit for visual feedback (LEDs, motorized faders etc.); Buttons can be set to function in momentary mode, not (just) toggle mode. Prime examples would be Behringer's BCR 2000 and BCF 2000.
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.


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
MIDI_controller
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.

ALSA

  • Advanced Linux Sound Architecture - ALSA provides audio and MIDI functionality to the Linux operating system. ALSA has the following significant features: Efficient support for all types of audio interfaces, from consumer sound cards to professional multichannel audio interfaces. Fully modularized sound drivers. SMP and thread-safe design. User space library (alsa-lib) to simplify application programming and provide higher level functionality. Support for the older Open Sound System (OSS) API, providing binary compatibility for most OSS programs.
  • Alsa Opensrc Org - unofficial wiki, Independent ALSA and linux audio support site


aconnect -i
  # list MIDI input devices

aconnect -o
  # list MIDI output devices


aseqdump -p ##
  # detect events from keyboard number ##



  • http://alsa-project.org/main/index.php/SALSA-Library - SALSA-Lib is a small, light-weight, hot and spicy version of the ALSA library, mainly for embedded systems with limited resources. The library is designed to be source-level compatible with ALSA library API for limited contents. Most of function calls are inlined, and accesses directly to the hardware via system calls. Some components like ALSA sequencer aren't supported, and most of all, the alsa-lib plugins and configurations are completely dropped. Thus, neither dmix nor format conversion is available with SALSA-lib.


Hardware



ALSA MIDI Raw

  • 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.

ALSA MIDI Sequencer


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 - 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.




  • 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.


  • 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.


  • [http://midiquickfix.sourceforge.net/ MidiQuickFix - allows you to directly edit the events in a Midi file. It is intended to make it easy to find and fix small problems in a Midi sequence without the need for a complex Midi sequencing program. It has also become a useful Midi and karaoke file player.



  • 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. 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 - 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 - 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/Jajcus/badumtss-machine - Ba-Dum-Tss Machine is a little application that converts any Linux input device into a MIDI keyboard. It was created to see if toy percussion set from a Guitar Hero game can be used as electronic drums (it can, not this way).
  • 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.


Graphics tablet

  • 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.

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.


  • Lemur - the professional MIDI and OSC controller app that doesn't cut any corners, has evolved. Now easier to use than ever, more customisable and with more out-of-the-box functionality. Any software or hardware that receives MIDI or OSC can be controlled by Lemur. Control DJ software, live electronic music performance software, studio production software (DAWs), VJ software, visual synthesis software, stage lighting and more. - MIDI/OSC interface, iOS/Android/macOS/Windows - $
  • TouchDAW - a full-featured DAW control and general purpose MIDI control app for Android tablets and phones. It allows you to remote control popular digital audio workstation software as known from standard hardware control surfaces - $

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. Windows/Mac.

Visual

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 - 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

MIDISpy

  • https://github.com/hiben/MIDISpy - a MIDI bridge for snooping/sniffing MIDI data in Java. This application allows you to spy on MIDI data exchanged between two applications or devices. The wiki contains a screenshot that might make this description clearer. It works by building a bridge/relay for the data to display the message contents before transmitting it further. The setup is very flexible as you can use different input and output ports for the two devices in question (but this also means you have to deal with Javas confusing way of showing them...). I wrote this to analyze the SysEx message exchanged between a Akai LPK25 Keyboard and the proprietary software that is used to program the presets (that luckily runs in Wine). To do something similar you setup MIDISpy to bridge/relay the keyboard via a virtual midi device (snd-virmidi). If the application then talks to the virtual device, the keyboard will receive all data and all answers are sent back to the application. In between all messages are shown as hex dumps.

Timing

  • https://github.com/widdly/midiclock - OSC controlled ALSA midi clock source. Receive OSC messages on localhost.. /tempo i, /start, /stop, /continue. Send MIDI clock messages via ALSA midi port.

MIDI routing

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 - 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)


JamPatcher

  • https://github.com/jimm/jam_patcher - 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.


MIDI processing GUI

MidiLayer

  • MidiLayer - 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.

QMidiRoute

Zweeger

  • Zweeger - 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.

MIDILab

  • https://github.com/jberthault/MIDILab - A Versatile MIDI Controller, Player, Recorder, Editor ... for Windows & Linux. This application provides a GUI that lets you: plug multiple devices and tweak them in realtime, play any MIDI file using connected devices or locally on a SoundFont synthesizer, record any stream and save it as MIDI files for later, edit files (well not now, but I'm on it), customize interface & behavior via xml configurations.

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 - 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??

FMidiAutomation

  • 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.

XController

  • XController - 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.

Zonage

  • Zonage - Four JACK MIDI data mappers for splitting your keyboard into zones. Pretty simple - each zone takes a midi input and truncates output data to within the key range specified in the UI. This lets you, for instance, split your keyboard into four zones and route each zone to one arpeggiator in Arpage. That was the main intent of the app.

MIDISceneManager

QMIDICurves

  • QMIDICurves - 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.


MIDI processing plugin suites

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. Win VST.

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. Linux and Windows.

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 - 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

  • J's MIDI tools - Free MIDI plugins. Windows VST, 32-bit and 64-bit. 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.


MIDI processing CLI/scripts

amidimap

  • amidimap - 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.

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 - 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

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 - 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

  • https://github.com/ledfyr/midicloro - 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.


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.

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.

used 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

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. Ruby.

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. XML.


The MidiBus

  • https://github.com/sparks/themidibus - The MidiBus is 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.


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. JavaScript. Dead.


MIDI Windows VST

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. Windows VST.

CCStepper

  • CCStepper - 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.


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. Windows VST.


Midiflow

Generation

Euclidean Pattern Generator

SoundHelix

  • SoundHelix - a free, versatile and flexible Java framework for composing and playing algorithmic random music based on constrained random generation (CRG). SoundHelix is an algorithmic random music generator (including a built-in MIDI sequencer) which can play generated songs on MIDI devices in real-time. It can also write the generated songs as MIDI files. SoundHelix is open-source software and is licensed under the GNU General Public License v3 (link is external). The project is hosted on SourceForge (link is external).

archaeopteryx

Windows VST / macOS

  • Automathico - a MIDI note generator based on looped mathematical calculations. Win VST.


  • Talent - an algorithmic MIDI application. This plugin was replaced by Hyperion in 2008. Talent is an algorithmic MIDI sequence generator with a simple and flexible design that lends itself to a variety of textures across 64 scales, using live MIDI control or automatic performance by settings.
  • Hyperion - MIDI VST has a semi-modular structure suitable for a wide variety of tuned algorithmic applications. LFOs and counters are used to easily create dynamic MIDI sequences and change them on the fly, or to modulate other components of the architecture. Hyperion produces glissandos or subtly varying sequences for up to three parts on three separate MIDI channels using a simple chord function. It can also be used as a phrase arpeggiator to make sure that you never play out of key or out of sequence.
  • Malt - uses an LFO to periodically alternate between one or both of two midi channels for generating algorithmic sequences.


  • CC Cube - gives you eight sets of MIDI cc values and transmits them at tempo. You may send the cc value sets manually, or configure an algorithmic progression between them.
  • HyperCube - applies periodic parameter modulation to Circuit and Hyperion for algorithmic song structuring. The grid of trimmers on the right indicates the probability for each band to progress to the next. CC Cube is a generic version of HyperCube that sends 8 cc values.


  • Period Seq - generates rhythmic sequences using four counters.
  • Populus - populus generates MIDI sequences with a 'biologically modeled behavioural' algorithm. The measure is treated like a 'year,' wherein notes grow, reproduce and combat.
  • Skunk - a four part algorithmic percussion sequencer. Probability is used to determine which of eight sequences follows the current selection. This concatenative effect is useful for cross-rhythms and other simple rhythmic automations.


  • Eckel - a midi generating Windows/Mac 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 and off's.
  • XronoMorph - a free OS X and Windows app for creating multilayered rhythmic and melodic loops (hockets). Each rhythmic layer is visualized as a polygon inscribed in a circle, and each polygon can be constructed according to two different mathematical principles: perfect balance and well-formedness (aka MOS). These principles generalize polyrhythms, additive, and Euclidean rhythms. Furthermore, rhythms can be smoothly morphed between, and irrational rhythms with no regular pulse can also be easily constructed.
  • MIDI Agent System - uses the interaction between different agents to generate MIDI notes. This is designed primarily for live use and it enables the performer to change the parameters of the agents that are generating the music in real time. For example, one agent can generate random bar markings, a second can add sequences of notes to these bars, a third can change the velocities of notes in the bars and a fourth can shift the pitches up or down. Many of the agents have knobs that can be set to respond to MIDI controllers and by varying the parameters of the agents it is possible to have real time control over very complex music. This software is written in Java and should run on any operating system.

Groove

  • Circuit - algorithm is designed to create natural feeling rhythms by evening the distribution of beats and rests. Each measure is divided into short phrases, and probabilities are assigned to each step so that a part can be weighted towards the downbeat or the upbeat. Circuit can be used for live performance or run automatically. Win VST.
  • Phase Seq - for sequencing unquantised loops, host synced or not. The position of each note is modulated individually by three LFOs, which can create effects like sequence stretching as well as randomisation. Win VST.


Arpeggiation

  • QMidiArp - an advanced MIDI arpeggiator, programmable step sequencer and LFO for Linux. It can hold any number of arpeggiator, sequencer, or LFO modules running in parallel.
  • hypercyclic - an LFO-driven MIDI arpeggiator, gate effect and step sequencer for mangling sustained MIDI input chords, the output of which can then drive other MIDI instruments. Multi-platform standalone and VST.


  • arpage - MIDI Arpeggiator w/ JACK Tempo Sync. Alpha status. Source tarball for alpha 0.3.3 release, and SVN access are available.
  • Flarps - a MIDI arpeggiator for linux based systems. Its operation is controlled by a text file, which can be edited while flarps is running. Flarps outputs MIDI events with JACK MIDI, and uses JACK transport for synchronization.


  • Machina is a MIDI sequencer based on Finite State Automata. A machine can be constructed manually from the user interface, recorded from MIDI input (free-form or step), or loaded from a MIDI file. The probability of arcs can be manipulated to build a machine that produces structured but constantly changing output. This way, Machina can be used as a generative recording tool that plays back patterns similar to, but not identical to, the original input.



  • GuitArp - a pitch-tracking VST host and arpeggiator sequencer for use with live guitar. Input from your guitar is converted into MIDI notes and run through the arpeggiator sequencer. Those notes are sent to a VST of your choice.


Windows VST

  • Scuzzphut6 - a free VST plugin for Windows, featuring a flexible trance-gate and two delay-lines, each with its own filter and LFO. The trance-gate section features: Click-n-drag activation of the gate steps. Step ties to link steps.

Attack/decay and shuffle controls. Each of the two delay-lines features: Tempo synchronization. HP/LP filter. LFO routable to both pan and filter cutoff.


  • Dualism - plugin version of the dual arpeggiators and 2X MIDI utilities found within M-theory and, as such, provides you with the ability to arpeggiate/double any other synth you wish, including hardware synths. Combining two flexible and programmable phrase arpeggiators with a pitch and speed controllable MIDI doubler, Dualism allows you to create arpeggiations that are far more complex and detailed than your standard synth arpeggiator. However, all this flexibility is contained within a small and straightforward interface, letting you quickly and comfortably create complex patterns without having to feel slowed down but the UI.
  • D-Arp - a dual MIDI arpeggiator. Easy to use, it combines two arps and allows to let them run in parallel or control one by the other. Use it with any synth (-plugin) to create interesting and new sequences. Special features: host-sync, shuffle, adjustable note length with overlap at max point (for mono glide sounds), velocity adjustable or input pass thru. Clock divider for speed control includes settings for dotted or triol - also there is a manual control for step thru by sending MIDI notes on channel 16 to the plugin (for example from a drum machine !)
  • Kirnu - a VST MIDI arpeggiator plug-in which is designed with real-time tweaking and usability in mind.
  • Arp4midi - A wrapper for Chris Kerry's arpeggiator SEM. I have never used this plugin! Installation of MIDI plugins varies between hosts.


  • MIDI Shape Shifter - MSS, is a VST MIDI plugin for mapping, generating and transforming MIDI data. This plugin's simple and flexible interface is capable of satisfying a wide range of MIDI needs. For example, MIDI Shape Shifter could be used to: * Apply a velocity curve * Generate an LFO * Create mappings between ranges of MIDI data * Filter out specified MIDI data * Apply midi compression or gate effects * Automatically harmonize notes * Create split/dual keyboard * Transpose * Control multiple parameters with a single knob * etc


  • RandARP - a VST plugin arpeggiator with many randomization features, allowing incoming notes or chords to be manipulated in various rhythmic ways. All standard arpeggiator parameters like number of octaves, note length and note order are included, but the plugin also offers complete randomization of the velocity, gate, shift and swing parameters. In addition, you can specify a note probability and randomize the note order, the octave order, and the number of octaves. All the randomization features allows you to create more interesting and unpredictable arpeggiated sequences.


Velocity


Chords

Midi Chord

  • Midi Chord - Harmonizer - make chords from single (fundamental) note in a given musical scale. The scale as well as intervals can be automated freely (currently held chords will change). Note-ons are latched, for multiple/combined chords only single note-on/off will be triggered for the duration of the combined chords. If a off-scale note is given, it will be passed through - no chord is allocated. Note: Combine this effect with the 'MIDI Enforce Scale' filter to weed them out.

tonespace

  • tonespace - a chord generator and visualizer, displays chords and scales on a grid, making it easy to understand their structure, displays chords on a piano keyboard, making it easy to play them, supports 39 chord types, 25 chord voicings/inversions, 21 scales, 18 keys, and 50 different grids. Linux, Windows, and macOS. Standalone app, VST or AU.

chordemux

  • https://github.com/dmgolubovsky/chordemux - a MIDI filter/router utility which receives chords on its input channel, and routes chords' notes to different channels depending on chord type and inversion. Haskell.

Windows / Mac

  • midiChords - The "Ultimate" MIDI chord VST plugin. Maps any note into 0 or more other notes. Windows / Mac.
  • midiChordAnalyzer - Guesses chord names based on MIDI input, or from clicked notes on the keyboard display. You can copy the chord for pasting into midiChords (or as plain text). Windows / Mac.
  • Chordz - a VST plugin that allows you to trigger full chords by playing single notes. Each trigger note is associated with a separate chord. Each chord may consist of any number of notes. Play complicated chord progressions with one finger, with a MIDI keyboard or a drum-pad, or trigger chords from single notes added in your DAW's piano roll. Windows VST.
  • Chordit - a VST plugin that allows you to trigger chords by playing single notes. Use the chord-switch octave to select chord type, and play the chords with the rest of the keyboard. The plugin supports optional velocity scaling and randomization for each note of the chord. Another feature is the start and end delay (can also be randomized), which can be used to emulate strumming. Windows VST.
  • ChordMem Pro - the enhanced version of the free ChordMem, a MIDI chord memory and trigger plug-in. It features 12 Chords per preset to be recorded and then played back by the single keys of an octave or the buttons of any MIDI controller. Each chord may consist of up to 12 notes. Play complicated chord progressions with the tip of one finger, with drum-pads or any other MIDI controller. Windows VST.
  • Custom MIDI Auto-Harmonizer - a tool designed with composers and live performers in mind. It allows you to generate harmonized notes in real time, according to the scale specified by the detected chord. You can define your own harmonization tables, according to your needs. Windows - $

Split

  • xhip Notelogic - apply MIDI processing on a polyphonic part in order to assign each note to a MIDI channel within a limited range of channels set by the polyphony parameter. You can then use your host's features (if available) to split the MIDI part by channel into individual "voices" and you can record each one of these one at a time using a monophonic analog synthesizer or otherwise as desired. It is also possible to use this plug-in to process a polyphonic part or MIDI input from a controller optionally in real-time; while configuring one or multiple monophonic or polyphonic instruments to receive each individual MIDI channel from 1 to N (selected polyphony) to play back the polyphonic part all in real-time.

Scale/tonic/tuning

  • MIDI Keys Transpose - Flexible 12-tone map. Allow to map a note within an octave to another note in the same octave-range +- 12 semitones. Alternatively notes can also be masked (disabled). If two keys are mapped to the same note, the corresponding note on/events are latched: only the first note on and last note off will be sent. The settings can be changed dynamically: Note-on/off events will be sent accordingly.
  • MIDI Chromatic Transpose - Chromatic transpose of midi notes and key-pressure. If an inversion point is set, the scale is mirrored around this point before transposing. Notes that end up outside the valid range 0..127 are discarded.
  • MIDI Enforce Scale - Filter note-on/off events depending on musical scale. If the key is changed note-off events of are sent for all active off-key notes.


  • Scala - a powerful software tool for experimentation with musical tunings, such as just intonation scales, equal and historical temperaments, microtonal and macrotonal scales, and non-Western scales. It supports scale creation, editing, comparison, analysis, storage, tuning of electronic instruments, and MIDI file generation and tuning conversion. All this is integrated into a single application with a wide variety of mathematical routines and scale creation methods. Scala is ideal for the exploration of tunings and becoming familiar with the concepts involved. In addition, a very large library of scales is freely available for Scala and can be used for analysis or music creation.

Written in Ada. Not the programming language Scale.

  • Mutabor - a program that supports the live music with micro tones. It allows to play any pitches, even those which are not availlable on ordinary keyboards. An important application is the "just intonation". Mutabor uses its own musical language to describe pitches, (re)tunings and reactions to events (chords, keys, MIDI signals). Furthermore, MIDI ports, MIDI files, and GMN files can be used in the same manner, mixed and output.
  • Muditulib - a multi-dimensional tuning library, is a library to be implemented (wholly or partly) in music production software. It consists of a core of C functions. Additionally a Pure Data implementation is provided. This implementation consist of several classes to be used as a modular system. The library makes use of a multi-dimensional numerical pitch representation system, a variant of the very well-known one-dimensional MIDI note system. Ambitions for other implementations are very welcome. Muditulib offers new ways of approaching tuning within the scope of diatonic (roughly the majority of) tonal music within the digital domain.


  • Cales - a Windows VST plugin that allows you to map your keyboard’s keys to a musical scale. This will ensure that you will always stay in key, and never hit a wrong note. When "easy mode" is enabled, you can play any scale using only the white keys with "C" always being the tonic (or "root" note). More than 20 scales are included, and you can add your own custom scales. Windows VST.


  • J74 Progressive SE (Standalone Edition) - a desktop application for Mac and Windows specialized in chord progression making. The application can be used in combination with any Digital Audio Workstation (DAW) which supports standard MIDI and standard MIDI files import. J74 Progressive SE allows you to create chord progressions by use of composition techniques modelling (such as diatonic scale and chords exploration methods) as well as performance styles (arpeggio, humanized timing and dynamics). The tool is capable of producing extremely realistic chord progressions and arpeggios, delivered directly as MIDI files (or real-time MIDI) for use in your DAW projects. - Windows. - $/demo
  • http://rfmusic.net/en/vst_view.php?id=33 Scale Player] - a MIDI effect plug-in that allows you to play different scales in any key and mode using the idea of relative notes rather that static note values. The plug-in calculates the intervals between pitches based on the selected scale and the user can move up and down the scale playing melodies, arpeggios or even chords using a few keys. The result is an unusual way of playing instruments, which can be fun, inspirational and much easier to play since you don't have to worry about hitting the wrong note, memorizing all the scales in all the keys and practicing complex riffs and phrases that can be a challenge to play the usual way. Scale player is a new kind of instrument that like any other instrument may take a bit of time to learn and master, but it will be a rewarding experience. It's ideal for live playing and with some practice you can play complicated licks and phrases that would impress everyone. - $

Delay

  • MIDI Delayline - Delay all MIDI events by a given time which is given as BPM and beats. If the delay includes a random factor, this effect takes care of always keeping note on/off events sequential regardless of the randomization.
  • MIDI N-Tap Delay - This effect repeats notes N times. Where N is either a fixed number or unlimited as long as a given key is pressed. BPM and delay-time variable allows tempo-ramps. On every repeat the given velocity-adjustment is added or subtracted, the result is clamped between 1 and 127.


  • Strumee - Three modulated MIDI delays for strumming and humanising MIDI. Win VST.
  • Midilegato - Delays NoteOff events on one midi channel by up to 500ms to turn generated sequences into legato sequences. Win VST.

Playback


  • aplaymidi - a command-line utility that plays the specified MIDI file(s) to one or more ALSA sequencer ports.
aplaymidi -l
  # get list of MIDI ports

aplaymidi -p 24:0 midi_file.mid
  # play MIDI file on port 24:0


  • pmidi - Midi player for ALSA. As you can specify the client and port to connect to on the command line it is also useful for testing ALSA or clients that need to receive sequencer events. This program does not have a graphical display, if you require one then you can use pmidi in conjunction with Takashi Iwai's aseqview program to display the song being played.


  • TiMidity++ is a software synthesizer. It can play MIDI files by converting them into PCM waveform data; give it a MIDI data along with digital instrument data files, then it synthesizes them in real-time, and plays. It can not only play sounds, but also can save the generated waveforms into hard disks as various audio file formats.


  • WildMIDI is a simple software midi player which has a core software synthesizer (softsynth) library that can be use with other applications. The WildMIDI library uses Gravis Ultrasound patch files to convert MIDI files into audio which is then passed back to the calling application for further processing or output. The API of the library is designed so that it is easy to include WildMIDI into applications that wish to include MIDI file playback. With multiple MIDI file support you can develop applications to mix several midi files together at the same time and use a different patch set for each MIDI file.


  • jOrgan comes with its own Midi Processing Language (MPL) which allows to dynamically construct and evaluate Midi messages. MPL expressions consist of various commands.


  • jpmidi - a Midi-file player that uses Jack-Midi and synchronises to Jack-Transport.


  • AdlMIDI - a commandline program that plays MIDI files using software OPL3 emulation (FM synthesis).


  • Jack-smf-utils is a set of two utilities - jack-smf-player and jack-smf-recorder - whose purpose is to play and record MIDI streams from/to Standard MIDI Files (i.e. the files with .mid extension) using JACK MIDI. It uses libsmf as a backend.
  • Sonivox EAS for Linux and Qt is a Linux MIDI Synth library based on the Sonivox EAS Synthesizer published by Google on the Android Open Source Project. It is a real time GM synthesizer without needing external soundfonts, using embedded samples instead. It consumes very little resources, so it may be indicated in Linux projects for small embedded devices.

Recording

Accompaniment

  • MMA—Musical MIDI Accompaniment - an accompaniment generator. It creates MIDI tracks for a soloist to perform over from a user supplied file containing chords and MMA directives. MMA is very versatile and generates excellent tracks. It comes with an extensive user-extendable library with a variety of patterns for various popular rhythms, detailed user manuals, and several demo songs.
  • LinuxBand is a GUI front-end for MMA (Musical MIDI Accompaniment). Type in the chords, choose the groove and LinuxBand will play a musical accompaniment for you. It’s an open source alternative to Band-in-a-Box.
  • LeMMA is a simple GUI “front-end” written in Python for MMA (Musical MIDI Accompaniment – also written in Python). I wrote it so that I can easily churn out chord progressions. Just enter the chords, select the grooves and press “Play”. Should work for both Linux and Windows.

Timing

  • https://github.com/x42/mclk.lv2 - MIDI Clock and MIDI realtime-message generator. It can run freely with dedicated BPM, start/stop/continue controls or generate MIDI Clock using host-provided musical time.

Other

  • http://velato.net/ - a programming language, created by Daniel Temkin in 2009, which uses MIDI files as source code: the pattern of notes determines commands. Velato offers an unusual challenge to programmer-musicians: to compose a musical piece that, in addition to expressing their aims musically, fills the constraints necessary to compile to a working Velato program. Each song has a secret message: the program it determines when compiled as Velato.

Libraries

  • MidiShare has been designed in 1989 in response to problems commonly met in the development of realtime music software. It provides high level services to developers and ensures platform independance since it supports GNU/Linux, MacOS X and Windows

C / C++

  • xnormidi - A C midi implementation for embedded systems.
  • libsmf - a BSD-licensed C library for reading and writing Standard MIDI Files (*.mid). It transparently handles conversions between time and pulses, tempo maps, and more.
  • RtMidi is a set of C++ classes (RtMidiIn, RtMidiOut and API-specific classes) that provides a common API (Application Programming Interface) for realtime MIDI input/output across Linux (ALSA & JACK), Macintosh OS X (CoreMIDI & JACK), and Windows (Multimedia Library) operating systems. RtMidi significantly simplifies the process of interacting with computer MIDI hardware and software.



Python

  • alsaseq – ALSA sequencer bindings for Python
  • MIDIUtil is a pure Python library that allows one to write muti-track Musical Instrument Digital Interface (MIDI) files from within Python programs. It is object-oriented and allows one to create and write these files with a minimum of fuss.
  • PyPortMidi is a Python wrapper for PortMidi. PortMidi is a cross-platform C library for realtime MIDI control. Using PyPortMidi, you can send and receive MIDI data in realtime from Python.
  • https://github.com/vishnubob/python-midi - tries to offer a reasonable object granularity to make MIDI streams a painless thing to manipulate, sequence, record, and playback. It's important to have a good concept of time, and the event framework provides automatic hooks so you don't have to calculate ticks to wall clock, for example.
  • https://bitbucket.org/timsavage/midikat - utilities for parsing MIDI messages. This module does not provide access to a MIDI stream. Data can be read from a MIDI stream by pygame.midi or the underlying pyportmidi. This module sits a level above and provides utilities for parsing data provided by the underlying modules.

Perl

  • Midge - Midi sequencing from the comfort of your text editor

Java

  • https://github.com/jaudiolibs/audioservers - A Java Audio Server API, partly inspired by PortAudio, providing a common callback-based API for audio programming. There are currently included backends for JavaSound and JACK.
  • https://github.com/jaudiolibs/audioops - A simple Java audio processing API (inspired by LADSPA, etc.) with a selection of reusable audio filters and effects ported from a range of projects.


Ruby

Rust

Go

Lua

  • MIDI.lua - Reading, writing and manipulating MIDI data

JavaScript


  • MIDI.js - Making life easy to create a MIDI-app on the web. Includes a library to program synesthesia into your app for memory recognition or for creating trippy effects. Convert soundfonts for Guitar, Bass, Drums, ect. into code that can be read by the browser. Supports multiple simultaneous instruments and perfect timing.
  • MidiWriterJS is a JavaScript library providing an API for generating expressive multi-track MIDI files. It's still young and in active development.

Web

See also WebDev#Web Audio API

Wifi

Remote

  • QmidiNet - A MIDI Remote Controller via UDP/IP Multicast
  • QmidiCtl is a MIDI remote controller application that sends MIDI data over the network, using UDP/IP multicast.
  • aseqnet - ALSA sequencer connectors over network

Files


  • MIDICSV - translate MIDI music files into a human- and computer-readable CSV (Comma-Separated Value) format, suitable for manipulation by spreadsheet, database, or text processing utilities, and re-encoding processed CSV files into MIDI. No information is lost in transforming a MIDI file to CSV and back.


  • MIDI Toolbox is a compilation of functions for analyzing and visualizing MIDI files in the Matlab computing environment. Besides simple manipulation and filtering functions, the toolbox contains cognitively inspired analytic techniques that are suitable for context-dependent musical analysis that deal with such topics as melodic contour, similarity, key-finding, meter-finding and segmentation.

Downloads

Windows

  • MIDI-OX, the world's greatest all-purpose MIDI Utility! - Windows.
  • QwertyKeyboardMidi is a Win32 C++ project that allows you to use your QWERTY keyboard as a MIDI controller. When coupled with MIDI Yoke it allows you to use the keyboard to control software running locally, such as Cubase or Logic.

Sequencers

See also Drumming#Software

  • https://en.wikipedia.org/wiki/Music_sequencer - or simply sequencer) is a device or application software that can record, edit, or play back music, by handling note and performance information in several forms, typically CV/Gate, MIDI, or Open Sound Control (OSC), and possibly audio and automation data for DAWs and plug-ins.

seq24

  • Seq24 - a minimal loop based midi sequencer. Development dead, see seq64 below. Some of the links in this section still apply though.

To make seq24 use it's own ALSA MIDI ports, open the "~/.seq24rc" and edit [manual-alsa-ports] to 1


forks that aren't as active as seq64/42/32:




  • https://github.com/sbrauer/seq42 - A midi sequencer for linux; a fork of launchpad.net/seq24, with greater focus on song editing (less on live looping) plus some enhancements. C++ with gtkmm. last updated 2016

seq42

seq32

seq64

  • https://github.com/ahlstromcj/sequencer64 sequencer64 - a continuation of sequencer24 to refactor it to be tighter and easier to transition to GTKmm 3, and much more. By now, it is well beyond the sequencer24 project (and seq24), in functionality, and the code is already *significantly* refactored, although the heart of it remains intact.

Development active.


Remember the main window top line pattern sequence goes 0, 4, 8, 12, 16, 20, 24, 28

Using MIDI keyboard, Note on (144), notes C2 (36) to F#4 (67):

See Audio setup


The first number is the pattern/sequence number in the main window, which ranges from 0 to 31. Each set of brackets corresponds to a MIDI filter. The MIDI filter in the left most brackets is the toggle filter. The MIDI filter in the middles brackets is the on filter. The MIDI filter in the right most brackets is the off filter.

If the incoming MIDI event matches the filter, it will either [toggle], [on], or [off] the pattern/sequence, respectively. The layout of each filter inside the brackets is as follows: [OPR INV STAT D1 D2min D2max] where:

  • OPR=on/off
  • INV=inverse
  • STAT=MIDI status byte(channel ignored)
  • D1=data1
  • D2min=data2 min
  • D2max=data2 max

If on/off is set to 1, it will match the incoming MIDI against the MIDI status byte pattern and perform the action (on/off/toggle) if the data falls in the range specified. All values are in decimal.

The inverse field will make the pattern perform the opposite action (off for on,on for off) if the data falls outside the specified range. This is cool because one can map several sequences to a knob or fader.

The MIDI status byte field is a MIDI status byte number in decimals. The channel nybble of this byte is ignored. One can look the possible status values up in the MIDI messages tables. As the channel on which the events are sent is ignored, one should always use the values for channel 1. That is, 0.

The last three fields describe the range of data that will match. The data1 field provides the actual MIDI event message number to detect, in decimal. This item could be a Note On/Off event or a Control/Mode change event, for example.

The data2 min field is the minimum value of the event for the filter to match. For Note On/Off events,this would be the velocity value, for example.

The data2 max field is the maximum value of the event for the filter to match.

Non Sequencer

  • Non Sequencer - a powerful, lightweight, real-time, pattern-based MIDI sequencer for Linux--released under the GNU General Public License (GPL). It utilizes the JACK Audio Connection Kit for MIDI I/O and the NTK GUI toolkit for its user interface.

You put non-sequencer into trigger mode and send it CC 20 messages, where the value part of the message is a pattern number to trigger.

Keyboard bindings are wonky.

Hardcoded for 4/4.

harmonySEQ

  • harmonySEQ - a live loop-based MIDI software sequencer intended to aid music composers and performers. Main harmonySEQ features include: managing a set of separated (but synchronized) sequencers, repeating looped melodies of different length, duration and MIDI channel, reacting on user-defined triggers, which makes it exceptionally useful for live performances or recordings, supporting complex polyrythms, ability to bind a many patterns to each sequencer, and play only one at a time, help in manage chords, which allows to create melodies that consist only of notes that sound great together, ability playback sequences of MIDI control events, an intuitive and multilingual interface, with a great piano-roll pattern editor



Advanced GTK+ Sequencer

  • Advanced GTK+ Sequencer (gsequencer) is intended to use for music composition. It features a piano roll, as well a synth, matrix editor, drum machine, soundfont2 player, mixer and an output panel. It's designed to be highly configurable, you may add effects to its effect chain, add or remove audio channels/pads. You may set up a fully functional network of engines, therefore exists a link editor for linking audio lines. Last update 2016.

Comments: Interesting interface, not entirely intuitive.

MidiEditor

  • MidiEditor - a free software providing an interface to edit, record, and play Midi data. The editor is able to open existing Midi files and modify their content. New files can be created and the user can enter his own composition by either recording Midi data from a connected Midi device (e.g., a digital piano or a keyboard) or by manually creating new notes and other Midi events. The recorded data can be easily quantified and edited afterwards using MidiEditor. Last updated 2016.

Comments: Makefile needs to be editor for qt4 includes. After building, program had broken graphics.


Aria Maestosa

  • Aria Maestosa - an open-source (GPL) midi sequencer/editor. It lets you compose, edit and play midi files with a few clicks in a user-friendly interface offering score, keyboard, guitar, drum and controller views. Aria Maestosa runs on Mac OS X, Windows and Linux/Unix.


Speedy MIDI

Piano roll tracks view.

BigBand

  • BigBand - Composing music for small ensembles



jackmididrummer

  • https://github.com/sukovec/jackmididrummer - Easy configurable drum machine/sequencer. Controlled by MIDI, emiting MIDI. The goal of this small piece of software is to make simple textually configurable drum machine where individual drum loops can be switched using midi. It is pretty basic piece of software... but it works. However, stdout is full of debug output, some features are not implemented yet

MidiInter

  • https://github.com/Noahdw/MidiInter - the beginning of what will hopefully one day be a Digital Audio Workstation that focuses on composer workflow through the integration of both notation software as well as traditional DAWS.

Epichord

  • Epichord is a midi sequencer. It allows you to arrange midi patterns to be played on midi aware tools, record midi, and store/load arrangements to/from disk. It does not make sound or handle audio in any way. That is the job of other midi programs and hardware to which it can connect. Epichord is a clone of what seems like countless programs available on windows, as well as some attempts to bring this type of tool to linux. In particular, it emphasizes a plain and 'overused' user interface which I believe existing tools either ignored to pursue something better, or just ignored. Here is a partial list of programs which serve as inspiration for Epichord in various ways.

Melyseq

  • Melyseq - Currently the following features are in place: A track view with drag and drop re-arrangement and copying of track parts, A piano roll view where notes can be freely moved and copied. A tempo view where the same can be done for tempo changes. Multiple files and multiple views of the same file can be open at once and elements moved or copied between them. All related views update when one is changed. Tracks can be recorded and overdubbed. Files can be read and saved as Midi or in a text MDML format.

Basic, dead since 2000.

Anthem

  • Anthem is an advanced open source MIDI sequencer. Anthem allows you to record, edit and playback music using a sophisticated and acclaimed object oriented song technology. It runs under the KDE desktop environment, on Unix-based platforms. It is based on the TSE3 sequencer engine and therefore provides a great deal of power, combining the innovative object oriented TSE3 song technology with a simple, intuitive interface.

Dead since 2002.

MidiSwing

  • MidiSwing - a midi sequencer displaying the content of midi files as a piano roll which you can edit. You can edit any existing midi file, or compose your own music from scratch. MidiSwing has been written in Java and is supposed to run on any Java 2 platform (Linux, Windows, Mac...). Freeware.

Java, piano roll, dead.


Jackbeat

  • Jackbeat - an audio sequencer, a Linux tool for musicians and sound artists : drummachine-like step sequencer interface for fast and easy editing, realtime operation : while playing, the sequence can be edited and resized, the bpm rate modified, and new samples loaded, virtually unlimited number of tracks and beats, easy to use and yet powerful : just JACK it into jack-rack and you can apply LADSPA effect plugins on a per track basis, perform mastering with jackeq

JACK, OSC, no MIDI

useq

Musagi

  • Musagi - original Windows a fairly large and sophisticated music editor and synthesizer

gmorgan

  • gmorgan is a rhythm station, a modern organ with full editable accompaniment for play in real time emulating the capabilities of commercial rhythm stations “Korg”,”Roland”, “Solton” ... also has a small pattern based sequencer like “Band in a Box”. Uses the capabilities of ALSA sequencer to produce MIDI accompaniment.

stygmorgan

SoftWerk

  • SoftWerk is a software analogue MIDI sequencer, modelled on hardware analogue sequencers like Doepfer's Schaltwerk. It can be used for pattern-based music composition, and offers almost all the features of its hardware cousins, plus quite a few more.

Amuc

MidiMountain

  • MidiMountain - a MIDI sequencer aimed to edit standard midi files. The easy to use interface should help even beginners to edit and create midi songs (sequences) with this application. For professionals, MidiMountain is designed to edit every definition known to standard midi files and the midi transfer protocol. From easy piano roll editing to changing binary system exclusive messages, MidiMountain is complete and usable for every midi user.


CYTHAR

New version is B-Step Sequencer


qTribe

  • qTribe - a step-based MIDI sequencer, heavily influenced by the layout and operation of the Korg Electribe series of 'grooveboxes'. It connects using the JACK MIDI API, and aims to provide a powerful and intuitive environment for composition and live performance of music.

beta, dead? no MIDI recording

Dino

  • Dino - a pattern-based sequencer, which means that you write small patterns of MIDI events that you can repeat and arrange to create a whole song. Each track has its own patterns, so you can for example play the same drum pattern over and over again while you play different lead synth patterns and basslines.

dead

Slag

  • Slag - aims at developing a multiplatform pattern-based audio step sequencer. As for now, it can be used as a simple drum box on GNU/Linux, NetBSD and Mac OS X.

dead


Freebirth

  • Freebirth - a free software bass synthesizer / step sequencer / sample player for the linux operating system.

Basic, no save, fun.


Jazz++ MIDI Sequencer

  • Jazz++ Midi Sequencer application for recording and mixing MIDI sequences, and for many years was the only stable application like it that ran under both Windows and Linux. Unfortunately, it has not been well maintained and was starting to look a little long in the tooth. It was also written with the venerable wxWindows version 1.68, which is not only now obsolete, but isn't even called wxWindows anymore.


KeyKit

  • KeyKit is an awk-like language developed by Tim Thompson and designed specifically for manipulating MIDI data. The full KeyKit system includes a multi-window and multi-tasking graphical user interface, and can be used for both algorithmic and realtime applications. The language itself has only a few built-in functions for graphics - the entire user interface is written in KeyKit itself, and is hence completely customizable and extensible by the user. The current version works best on Windows NT and Windows 95, but the software is designed to be portable. Previous versions have been ported to a wide variety of systems, including UNIX, DOS, Mac, Amiga, and even Plan 9.

Keynote is a programming language for manipulating and generating music with MIDI-compatible equipment. It was designed for and int he style of the UNIX software system, as an application-specific "little language" and interactive shell. Most obviously used for algorithmic music composition, Keynote also serves as a more general utility for non-realtime and realtime MIDI data manipulation. By adding only a few functions to the language, a graphic interface was recently added. This built-in graphic interface did not, how-ever, build-in any particular user interface. All the nested pop-up menus and operations of a graphical music editor have been implemented in the Key-note language itself. The result is an extensible tool,similar in spirit to the Lisp-based extensibility of emacs, easily modified and enhanced by end users.

GeoMaestro

SuperCutSequencer


stepseq.lv2

Guitarix DrumSequencer

BloqSeq

  • BloqSeq - switches between four 8-step sequences using an 8-step pattern.


Series

  • Series - a MIDI sequencer based on the concept of serialism. Two separate counters can be assigned to three gate sequences and three modulation sequences. With three LFOs, four random step generators and performance controls, Series is capable of generating and modulating intricate arpeggios and rhythms.

MiniSeries

  • MiniSeries - a smaller, different version of Series. Miniseries has one modulated counter that progresses through eight MIDI note assignments. Three LFOs and a variety of performance controls make MiniSeries capable of generating a wide array of sequences.


kVstSequencer


CuSE

  • 'Cursed Sequencer' (CuSE) is a MIDI-Sequencer which targets both terminal purists and visually impaired people. The purely character- based interface provides the kind of information needed by braille-displays and screen-readers. But CuSE can also enable normally sighted people to run the sequencer over a network or on a low-end embedded device.

quincer

  • quincer - a MIDI sequencer for composed music, reads text files for input, which may include other input files to re-use material. It is a pure JACK client.

sequencer

sequencer

STed

  • STed - high-performance MIDI sequence editor / Music composer system. It had been working on X680x0 old Japanese personal workstation, ported the STed to UNIX & X environment.

midiseq

Mish

Nebulator

  • https://github.com/cepthomas/Nebulator - C# makes a reasonable scripting language, given that we have the compiler available to us at run time. Actually you can create compositions without any script functions at all, but they are there if you want them. The main music part is all declarative. While the primary intent is to generate music-by-code, runtime interaction is also supported. It's called Nebulator after a MarkS C++ noisemaker called Nebula which allowed manipulation of parameters using custom UI inputs, and display of whatever on the UI. A simple API for UI functions is provided - it's a subset of that provided by Processing. Also, the new functions that support music are modelled after that API style.

Songtive

Molgav

Sampulator.com

Políssonos

Hex

  • https://www.dynamictonality.com/hex.htm Hex] - a multi-track MIDI sequencer that facilitates music composition in microtonal tunings. It integrates seamlessly with our DT-enabled synthesizers, or with any standard MIDI synthesizer. It can also be used in conjunction with a digital audio workstation such as Pro Tools, Logic, Cubase, or SONAR. Hex uses a lattice roll in place of the traditional piano roll. This enables unfamiliar microtonal scales to be intuitively visualized, and their tuning to be dynamically manipulated. The light buttons/lanes can be thought of as generalized "diatonic" notes, and the dark buttons/lanes as generalized "chromatic" notes.


CycliC

  • CycliC - an entirely new step sequencer, with six independent subsequences that cycle through a 32-note array. It represents a collaboration between Defective Records Software & Mutable Instruments. Free Demo Version is fully functional except it won't allow you to use the excellent presets feature, has support for only one VST plugin slot, and will time out after 30 minutes) - $


BoxySeq

  • BoxySeq is an experimental JACK MIDI application whose functionality lies somewhere between sequencer and arpeggiator but can't be said to be either. It operates using a customized bin-packing-like algorithm based upon the behaviour of the Fluxbox window manager.

xwinmidiarptoy

  • xwinmidiarptoy is an experimental BASH script which utilizes X and whichever window manager you happen to be using within X. xwinmidiarptoy is a MIDI sequencer which works by repeatedly opening xterm terminal windows within X and maps the position of the terminal window on the desktop to a MIDI note and velocity. Each xterm hangs around while the note plays, and then some specified time afterwards before disappearing again. Different arpegiating patterns can be generated by placing the windows of other software programs in varying positions within the desktop and thus (if you are using a window manager that works this way) blocking the script from producing certain notes.

GMS

  • GMS (Gestural Music Sequencer) - written in Processing.org by Unearthed Music recording artist and AudioCookbook.org founder John Keston, analyzes video input and converts it into a sequence of musical information in real-time. Each frame is processed to find the brightest pixel. The x coordinate is converted into pitch while the y coordinate is translated into dynamics. The application was also designed to use probability distributions on pitch and durations.

tracker

TSE3

  • TSE3 is a powerful open source sequencer engine written in C++. It is a 'sequencer engine' because it provides the actual driving force elements of a sequencer but provides no form of user interface. Sequencer applications or multimedia presentation packages will incorporate the TSE3 libraries to provide a user with MIDI sequencing facilities.

Dead - 2005

Tritium


Sequetron

  • Sequetron - a program with a twist; designed as a live instrument for hands-on use, all played & controlled from where your hands are - the music keyboard. It runs from switch-on with no interaction, and converts the simplest MIDI keyboard or device into a multi-track recording, playback & looping instrument. It has sequencer-like functions but is radically different to other programs as it is completely controlled using series of music notes called command sequences. There is no difference between commands and music - they are all sequences, hence the name... it can even control itself.

Windows sequencers

Pxtone

Sekaiju

  • Sekaiju - free, open source MIDI sequencer software for creating and editing MIDI data. You can record MIDI keyboard or synthesizer's playing to the computer, and you can compose music to play with your MIDI modules or synthesizers. Sekaiju also can be used as a powerful MIDI editor. Windows

Temper

  • Temper - a MIDI+Audio sequencer with an emphasis on MIDI. Temper provides a straight-forward user interface that quickly guides you into advanced group operations and unique functionality such as decor and perform time, all tied together with an underlying shape concept for describing data transformation. Easily integrate Temper with your other software via basic drag-and-drop behaviour, more advanced sync functionality, or seamlessly as a VST.

JJ-Sequencer

Domino

  • Domino - "MIDI exclusive music editing software (MIDI sequencer) with piano roll as the main. Like me, the music is amateur & keyboard can not play very well & I can not read the score musically & & DAW is expensive & can not buy & it is too bad to leave the SC-8850 bought a long ago ... Such a target is."

B-Step

Koushion

Trackers

  • https://en.wikipedia.org/wiki/Music_tracker - (usually referred to simply as trackers) are a type of music sequencer software used to create music. They represent music tracks as an arrangement of discrete musical notes positioned in one of several channels, at discrete chronological positions on a timeline. The file format used for saving songs is called a module file.

A music tracker's musical interface is traditionally numeric: both notes and parameter changes, effects and other commands are entered with the keyboard into a grid of fixed time slots as codes consisting of letters, numbers and hexadecimal digits. Separate patterns have independent timelines; a complete song consists of a master list of repeated and concatenated patterns. Later trackers departed from module file limitations and advantages, adding other options both to the sound synthesis (hosting generic synthesizers and effects or MIDI output) and to the sequencing (MIDI input and recording), effectively becoming general purpose sequencers with a different user interface.



  • Ultimate Music Tracker Base - Comprehensive database of music tracking software. Ultimate Soundtracker, ProTracker, Scream Tracker, Fast Tracker, Impulse Tracker, Renoise.




Classic trackers

Soundtracker

  • SoundTracker - a music tracking tool for Unix / X11 similar in design to the DOS program FastTracker and the Amiga legend ProTracker. Samples can be lined up on tracks and patterns which are then arranged to a song. Supported module formats are XM and MOD; the player code is the one from OpenCP. A basic sample recorder and editor is also included. SoundTracker is free ("open source") software, licensed under the GNU GPL. The name of the program is a tribute to Karsten Obarski, who released his Ultimate Soundtracker program for the Amiga in 1987 and thus unknowingly founded the basis of a huge free-music movement.

The basic concept is very simple: you have a number of sound samples, and you can arrange them on so-called tracks. A track (also called "channel") can not play more than one sample at the same time. Whereas the original Amiga trackers only provided four tracks (this was the hardware limit), modern trackers can mix a virtually unlimited number of channels into one sound stream, applying various effects to the samples used. Tracks which are played at the same time are grouped to form a pattern. A pattern typically has 64 entries per track; these entries are cycled through at equidistant time intervals. A basic drum set could thus be arranged by putting a bass drum at entries 0, 4, 8, 12 etc. of one track and putting some hihat at entries 2, 6, 10, 14 etc. of a second track. Of course you can also interleave bass and hats on the same track, if the samples are short enough -- they can't overlap, otherwise the previous sample is stopped when the next one sets in -- look at the screen shots for a more visual explanation. Finally, a module is a compact file containing various patterns and samples, including a position list which specifies playback order of the patterns, forming a song. SoundTracker can load modules of the popular XM and MOD formats. The also very popular IT format is not supported at the moment.

  • https://en.wikipedia.org/wiki/Ultimate_Soundtracker - or Soundtracker for short, is a music tracker program for the Commodore Amiga. It is the creation of Karsten Obarski, a German software developer and composer at a game development company EAS. Soundtracker was released as a commercial product in mid 1987.

NoiseTracker

  • https://en.wikipedia.org/wiki/NoiseTracker - a freeware tracker created 1989 for the Amiga platform. It was based on the Ultimate Soundtracker and developed by Pex "Mahoney" Tufvesson and Anders “Kaktus” Berkeman. It was used by Amiga game musicians to create music with four channels of sampled stereo sound. Additionally it was used by some music groups as a low cost alternative to a full studio for rudimentary backtrack music production. One of the users is Axwell of Swedish House Mafia.

OctaMED

  • https://en.wikipedia.org/wiki/OctaMED - a popular sound tracker for the Commodore Amiga, written by Teijo Kinnunen. The first version, 1.12, was released in 1989 under the name MED, which stands for Music EDitor. In April 1990, version 2.00 was released with MIDI support as the main improvement. In 1991 the first version with the name OctaMED was released, so-called as it could replay eight independent channels on the Amiga's four-channel sound chip. This was also the first commercial version of the software. The publisher throughout has been RBF Software of Southampton, UK which is run by Ray Burt-Frost.

Protracker

  • https://en.wikipedia.org/wiki/Protracker - a popular freeware tracker created by Lars Hamre, Anders Hamre, Sven Vahsen and Rune Johnsrud for the Amiga platform. Initially released in 1990, it is among the first programs that allowed for widespread creation of music without studio equipment. It was popular for amateurs and professionals, and set a standard for the MOD fileformat.

Scream Tracker

  • https://en.wikipedia.org/wiki/Scream_Tracker - a tracker (an integrated multi-track step sequencer and sampler as a software application). It was created by Psi (Sami Tammilehto), who later formed Finnish Future Crew. It was written in C and assembly language. a tracker (an integrated multi-track step sequencer and sampler as a software application). It was created by Psi (Sami Tammilehto), who later formed Finnish Future Crew. It was written in C and assembly language. The first version (1.0) had monophonic 4-bit output via PC speaker and 8-bit via a digital-to-analog converter on the parallel port, or a Sound Blaster 1.x card. The first popular version of Scream Tracker, version 2.2, was published in 1990. Versions prior to 3.0 created STM (Scream Tracker Module) files, later ones used S3M (ScreamTracker 3 Module). The last version of Scream Tracker was 3.21 released in 1994. It was the precursor of the PC tracking scene and its interface inspired newer trackers like Impulse Tracker.

Future Crew released third version (ST3) in 1994, placing it in competition with FastTracker 2. Various other trackers (such as Impulse Tracker or OpenMPT) adopted the use of the Scream Tracker's S3M format.

FastTracker 2

  • https://en.wikipedia.org/wiki/FastTracker_2 - a music tracker created by Fredrik "Mr. H" Huss and Magnus "Vogue" Högdahl, two members of the demogroup Triton (who later founded Starbreeze Studios) which set about releasing their own tracker after breaking into the scene in 1992 and winning several demo competitions. The source code of FastTracker 2 is written in Pascal using Borland Pascal 7 and TASM. The program works natively under MS-DOS.

QuadraComposer

Impulse Tracker

CheeseTracker

  • CheeseTracker - a software sampler and step-based sequencer modelled after Impulse Tracker. It allows a musician to turn single-note samples into instruments capable of covering three or four octaves (by playing the samples at different speeds, resulting in different pitches). In addition, it is possible to take a collection of samples that are recorded at different octaves, and combine

them into a single "instrument," allowing for even more octaves without sampling artifacts. Last update 2007.

Retro trackers

MilkyTracker

Adlib Tracker II

  • Adlib Tracker II - is, dare we say, the most userfriendly tracker aimed for the OPL3 FM-chip, and is full of advanced features to simplify your task of making the most of your Adlib-tunes. Supporting 4 operator instruments, percussion mode, a wide selection of importable song- and instrument types and - maybe foremost - an advanced macro editor that can really push the FM-chip to the limit.

If you're lucky enough to have an old PC machine lying around with a Sound Blaster compatible card - or a brand new computer that can simulate it - don't hesitate to install and get grooving with this ultimate FM-tool of yours! DOS/Win/Linux

klystrack

  • klystrack - a tracker for making C64/NES/Amiga-style chiptunes on a modern platform. Sound: Additive synthesis with filters (think SID, Atari, NES etc.), Hard sync and ring modulation (like SID), FM synthesis (think Adlib, MSX, OPL2 etc.), Wavetable for samples or custom waveforms to be used in synthesis (think Amiga, SNES), Built-in wave generator and editor, Programmable instruments not limited to simple arpeggios. Sequencer: Tracker with free positioning of patterns, Pattern transpose, Pattern length is not fixed, Hard limit of 32 channels but this can be raised (just ask if you need more... sounds crazy, though), Fully themeable, includes half dozen themes. Effects: Stereo chorus, SNES-style multitap echo, Bit crusher/decimator. Export: Own custom format with a tiny playback library to be used in games, demos etc., Export as .WAV, Export each track as separate .WAV's, Export wavetable items as .WAV's (use klystrack to create one-cycle waveforms). Import: Import .WAV's to use as samples, Import Protracker and FT2 modules, Import C64 SID files (Rob Hubbard player)

Propulse

  • https://github.com/hukkax/Propulse - A crossplatform tracker for making Amiga ProTracker compatible tracker modules using an Impulse/Schism Tracker style user interface. Currently tested to build and run on Windows, Linux and macOS.

Features: Super accurate playback engine based on work by 8bitbubsy (itself based on a disassembly of the original Amiga ProTracker); things like black_queen.mod and MPT test cases play correctly. You can also choose whether the EFx effect should be played like in ProTracker or like the PT playroutine plays it. Familiar Impulse/Schism Trackerish interface with familiar keyboard commands. User configurable keybindings, colors, fonts of any size, even screen layouts... Show and edit effects in either Impulse or ProTracker format (e.g. Dxy vs. Axy). WAV export with optional looping and fade out. Integrated mouse-driven sample editor

Supported formats: MOD - Loads and saves Amiga ProTracker modules (including load support for 15-sample Ultimate SoundTracker mods, NoiseTracker, and PowerPacked files), P61A - Imports The Player 6.1a crunched modules, IT - Imports Impulse Tracker modules, Samples: IFF 8SVX, WAV, MP3, Ogg Vorbis, raw

ChibiTracker

Hively Tracker

  • Hively Tracker - a tracker program based upon the AHX format created in the mid '90s by Dexter and Pink of Abyss. The format was relatively popular, and many songs were created and used in scene productions and games. AHX was designed to create a very SID-like sound on the Amiga. HivelyTracker can import and export modules and instruments in the AHX format, but it also improves on AHX in several ways and therefore has its own instrument and module formats. HivelyTracker offers the following features over AHX: Multichannel (4 to 16 channels), Per-channel stereo panning, Two commands per note instead of one, Ring modulation, A more feature rich editor

Prototracker

  • Prototracker - a multiplatform fakebit chiptune tracker. Try the online version. The editor is a fairly normal tracker. The synth is an absolutely minimal single-oscillator synth (with 256 preset waveforms). Macros are used to create "instruments" and also some normal channel effects. Most keyboard shortcuts are the same as in Protracker. Protracker is not the same thing as Prototracker-modular or Prototracker-OPLL. They have their own forks. Supported platforms: HTML5, Windows (MinGW), Linux, Mac (just use the Linux makefile), Chip8 (runs great on a PocketCHIP), Probably anything SDL2 supports


Modern trackers

Schism Tracker

  • Schism Tracker - free reimplementation of Impulse Tracker, a program used to create high quality music without the requirements of specialized, expensive equipment, and with a unique "finger feel" that is difficult to replicate in part. The player is based on a highly modified version of the Modplug engine, with a number of bugfixes and changes to improve IT playback. Where Impulse Tracker was limited to i386-based systems running MS-DOS, Schism Tracker runs on almost any platform that SDL supports, and has been successfully built for Linux, Mac OS X, Windows, FreeBSD, AmigaOS, BeOS, and even the Wii. Most development is currently done on 64-bit Linux. Schism will most likely build on any architecture supported by GCC4 (e.g. alpha, m68k, arm, etc.) but it will probably not be as well-optimized on many systems.

DefleMask

  • DefleMask - a cross-platform tracker (runs on Windows, Mac OS X and Linux) for producing music for many soundchips and old school game-consoles/computers. Every sound that comes from this tracker is obtained from pure register writes to the soundchips being emulated, and those sounds can be exported to the real hardware! Supported soundchips so far: YAMAHA YM2612 (with full support of Special CH3 mode), Texas Instruments SN76489 PSG, Z80 Game Boy, Hudson Soft HuC6280, Ricoh 2A03, MOS Technology SID, YAMAHA YM2151, SEGA PCM. So you can make music for: SEGA Genesis/Mega Drive, SEGA Master System, Nintendo Game Boy, NEC PC-Engine/TurboGrafx-16, Nintendo NES, Commodore 64, Arcade System (SEGA X/Y boards)

NoiseTrekker / ProTrekkr

  • ProTrekkr - formerly known as NoiseTrekker by Juan Antonio Arguelles Rius aka Arguru, is a tracker program combining a software synthesizer together with a traditional samples tracker which can be used to create electronic music (like psytrance, trance goa, hard acid, IDM, chip, techno, etc.) for small sized intros, demos or games. Arguru used NoiseTrekker as the basis of Renoise.

PSYCLE

  • PSYCLE - Psycle Modular Music Creation Studio, using a tracker interface (like FastTracker 2 or Impulse Tracker). It can be used to make any type of music, using either its native plugins (synths and effects), VST2 plugins (synths and effects), internal sampler and effects and .wav files through the sampler. Notes are entered in patterns, where lots of different commands (plugins related or general) can be used to change any plugin (native or VST, synths and effects) parameters at any time. The patterns are then organized in the sequencer. This sequence is the song and can be saved in .psy format, but also to .wav (this allows to compress the song in .mp3 or .ogg formats for example)

PixiTracker

  • PixiTracker - a simple and fun tool to quickly create musical sketches, chip tunes and sound experiments. Without requiring a lot of musical knowledge! Windows/macOS/Linux/iOS/Android. Key features: intuitive interface; pattern-based sequencer (tracker) with high quality sampler; several packs with unique sounds; sound recorder (from microphone or line-in); MIDI keyboard support; WAV export/import; export to XM (eXtended Module of the FastTracker2) - this file can be loaded by any modern music tracker/player (for example, SunVox)

jacker

  • jacker - create music from a cornucopia of free synthesizers and effects on GNU/Linux. Jacker uses the power of JACK MIDI to control external synthesizers, samplers and effects - with perfect timing. Connect your favorite instruments and exercise total control over every aspect of your song using the traditional tracker interface known from underground apps like "Impulse Tracker" or "Fasttracker 2". And of course, it's free and open, too. Last commit 2011/2013

Renoise

  • Renoise - a Digital Audio Workstation (DAW) with a refreshing twist. It lets you record, compose, edit, process and render production-quality audio using a tracker-based approach. In a tracker, the music runs from top to bottom in an easily understood grid known as a pattern. Several patterns arranged in a certain order make up a song. Step-editing in a pattern grid lends itself well to a fast and immediate workflow. On top of this, Renoise features a wide range of modern features: dozens of built-in audio processors, alongside support for all commonly used virtual instrument and effect plug-in formats. And the software can be extended too: with scripting, you can use all of your MIDI or OSC controller to control it in exactly the way you want. - $


Web trackers

WeTracker

  • WeTracker - a Reaktor-like web based music composition application, bringing the world of ditial audio into the browser. Create your music wherever you find the muse, just login to the site from a Chrome or Firefox browser and start creating. WeTracker has a heritage that can be traced back to the old school music trackers of the ‘80’s and ‘90’s era, used prolifically in game music and the “demoscene”. Instruments are created by using samples of real instruments, or taken from synthesizers, once loaded into the system, you can apply volume and panning waveforms to control the playback of the sample. Music is created by playing these instruments in “patterns”. A pattern is a sequence of instructions to do various things with the instruments, including playing notes and applying various effects such as vibrato, volume/pitch slide, arpeggios, etc. These patterns are then played in a sequence, repeating if required to form the song.

Sonant Live

  • Sonant Live - a minimalistic music synth and editor that runs in your browser. It has its roots in the demo scene, and was originally a Windows native tool (Sonant by Jake Taylor, aka Ferris / Youth Uprising) for creating songs for 4K demos (where neither the song data nor the music player code can be larger than a copule of thousand bytes at most). Sonant Live is fully compatible with the original Sonant tool as well as with the js-sonant JavaScript player routine that can be used for adding music to your JavaScript demos.

Bassoon Tracker

SoundBox

Marabu

  • Marabu - a minimalist music writing application. You can see the full the source code and guide here. We hope you enjoy creating music with Marabu! You can download additional themes.


MIDI trackers

Tutka

  • Tutka - a free (as in freedom) tracker style MIDI sequencer for GNU/Linux and Mac OS X. It is similar to programs like SoundTracker, ProTracker and FastTracker except that it does not support samples and is meant for MIDI use only. Tutka uses a custom XML based file format for storing songs. Songs in OctaMED SoundStudio's MMD2 file format can also be loaded and saved.

FLTracker

ttrk

  • ttrk - a MIDI sequencer application. I was annoyed by the bad step editors found on pretty much all MIDI sequencers I could find, and since I was big fan of the tracker interface, I used the user interface ideas behind a tracker in my design.

b-tektracker

TEQQER

  • TEQQER - The Console MIDI Tracker for the Nerdy Music Hacker. An ncurses/terminal based midi and CV signal tracker/sequencer.

MIDItrk

  • MIDItrk - enables you to create MIDI with tracker-style handling. The main difference to most of the contemporary trackers is that it gives orderlist/sequence for all tracks, so you can use one pattern anywhere without tedious copy/paste process, just by typing its number in the right place...


Game Boy trackers

Little Sound Dj / LittleGPTracker

  • Little Sound Dj - the Game Boy/Game Boy Color tool of choice for amateur & professional musicians and composers!
  • LittleGPTracker (a.k.a 'The piggy') is a music tracker optimised to run on portable game consoles. It is currently running on Game Park's GP2x & Caanoo, PSP, Dingoo, Windows, Mac OSX (intel/ppc) & Linux (Debian). It implements the user interface of littlesounddj, a very famous tracker for the Gameboy platform that has been tried and tested by many users over the years, leading to a little complex but yet extremely efficent way of working.

C64 trackers

Covert Bitops

  • Covert Bitops is a small group making C64 productions (mainly games & music) and related free utilities on recreation basis. This site is dedicated to these productions, utilities and C64 programming-related articles (rants).
  • GoatTracker2
  • NinjaTracker2
  • etc.

Hermit SoftwareHungary

Software:

  • (6.4MB) SID-Wizard 1.7 (Featureful Commodore64 tracker-style music editor)
  • (437kB) TEDzakker 1.0 (Featureful Commodore Plus4 / C16 TED-music tracker)
  • (212kB) 1raster-tracker 1.0 (One rasterline tracker for C64 SID)


  • (147kB) jsSID-0.9.1 (JavaScript SID emulator and player for Web Audio API)
  • (106kB) cSID (Commandline C64 SID music player based on jsSID code.)
  • (156kB) cSID-light (Non-cycleexact version of cSID with much less CPU-usage.)


Graphic calculator trackers

HoustonTracker 2

  • phttp://irrlichtproject.de/houston/ HoustonTracker 2] - a music editor/sequencer for the Texas Instruments TI-82, TI-83/82STATS, and TI-83+/84+/SE. It allows you to compose and play multi-channel 1-bit music directly on your TI graphic calculator. HoustonTracker 2 is a complete rewrite of the original Houston Tracker. Like HT, it is developed by utz aka irrlicht project.

PSP tracker

PSPSeq

  • PSPSeq - a free homebrew application for composing music on the Sony PSP handheld game system. PSPSeq contains both realtime synthesis and sample playback capability, along with multiple FX modules of widely varying types for modifying instruments in countless

ways. PSPSeq also has a powerful and unique step sequencer for triggering samples and arranging loops into full songs.


Windows trackers

OpenMPT

  • OpenMPT (short hand for Open ModPlug Tracker), a popular tracker software for Windows.

SVArTracker

  • SVArTracker - a music creation tool - a virtual studio with the tracker interface. Compatibility with thousands of virtual instruments - can load VST, VSTi, and DirectX DMO plug-ins. Windows.

BeRoTracker

  • BeRoTracker - a advanced modular next-generation tracker, which is fully compatible with old module formats (MOD, S3M, XM, IT, etc.). It has a VST/VSTi host too. BeRoTracker is a modular tracker. Illimited channel number. Drum Patterns. Cutoff, Resonance, LFO instrument envelopes. Resampling support. Piano-roll editor. Windows.

Aodix v4

  • Aodix v4 - the first tickless tracker-interface based sequencer of its kind. VST2 host, and supports ASIO2. Aodix v4 achieves outstanding real-time performance with very low latencies. Aodix supports modular VST instancing and wiring, allowing any kind of scheme. Aodix supports pattern arrangements with pattern calls, patterns being of virtually unlimited length. Aodix provides several recording/editing modes for your convenience (e.g. edit at one location while transport is playing elsewhere!)...

zTracker

  • https://github.com/cmicali/ztracker - zTracker is a win32 only MIDI tracker/sequencer modeled after Impulse Tracker. The project is currently closed but the source is archived here.

FamiTracker

  • FamiTracker - a free Windows tracker for producing music for the NES/Famicom-systems. The interface is based on MadTracker and should be easy to use if you've been using trackers before. One of the features is NSF-file exporting. That allows music created in this tracker to be played on the real hardware, or even for use in your own NES-applications. Some other features: Full real-time emulation of all channels, Internal PCM to DPCM-sample converter, MIDI input devices are supported, NTSC & PAL modes are both supported
  • http://www.nanoloop.com/ - gameboy

Mac tracker

zTracker_mac

  • https://github.com/esaruoho/ztracker_mac - zTracker, the MIDI-only clone of Impulse Tracker, which itself was a clone of Scream Tracker 3. It's a tracker. It does MIDI. I'm looking to somehow crowdsource it's compiling for the macOS/OS X.

Modular synth tracker/DAW

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.


Does any other software have channel strip sequencing, piano roll, tracker, modular processing and mixer? Interface still needs work.


Requires the https://github.com/tim-janik/rapicorn GUI library to build.

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

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


Radium

SunVox

  • SunVox - a small, fast and powerful modular synthesizer with pattern-based sequencer (tracker). It is a tool for those people who like to compose music wherever they are, whenever they wish. On any device. SunVox is available for Windows, Mac OS X, Linux, Maemo, Meego, Raspberry Pi, Windows Mobile (WindowsCE), PalmOS, iOS and Android.

Niiiiiice. Buzz like modular synth with tracker style sequencing. No integrated traditional piano roll.




Buzztrax

  • Buzztrax - a free software project to create a clone of the Buzz music composer. The driving motivation is to preserve the playability of the compositions made with Buzz. Aims to be a music studio that allows one to compose songs using only a computer with a soundcard. If you’ve used tracker programs like FastTracker, Impulse Tracker, or the original AMIGA SoundTracker, that will give you an idea of how one can sequence music in Buzztrax. The Buzztrax editor uses a similar concept, where a song consists of a sequence with tracks and in each track one uses patterns with events (musical notes and control changes). In contrast to other Tracker programs, tracks are not simply sample players: a user can make a song using an arrangment of virtual audio plugins that are linked together to create different effects. Each of these machines can be controlled realtime or via patterns in the sequencer.
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
export MANPATH=$MANPATH:/usr/local/share/man
export DEVHELP_SEARCH_PATH=$DEVHELP_SEARCH_PATH:/usr/local/share/gtk-doc/html
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export GST_PLUGIN_PATH_1_0=$GST_PLUGIN_PATH:/usr/local/lib/gstreamer-1.0
export XDG_DATA_DIRS=$XDG_DATA_DIRS:/usr/local/share
export GI_TYPELIB_PATH=$GI_TYPELIB_PATH:/usr/local/lib/girepository

Aldrin Modular Sequencer

  • Aldrin - an open source modular music sequencer/tracker for the GNU/Linux operating system. It features a flexible audio routing system commonly found in expensive audio software, enabling you to mix, split, mutilate and modify audio signals emitted by software synthesizers and samples.

Dead, forked to Neil Sequencer

Neil Sequencer

  • Neil is an open source application for making music on Linux. It is a kind of music software known as a tracker. It is similar to the famous buzz for Windows. Neil was forked off Aldrin project because it was not being developed smoothly enough and, since Aldrin was the only Linux application I could actually make music on, I wanted to secure it from being made unusable (for me at least, so no offense to original developers - you did a great job).


Windows

Buzz

  • Buzz - the first ever "easy to use" free modular software based synthesizer. What this means is that the entire system is based on objects, which may be routed in a modular fashion, giving you the freedom to be as creative as you want. For example, if you wish to run 3 Physical Modelling synths and a Drum Machine through 2 seperate Stereo Delays, into a Mixer, through a Compressor and Parameteric EQ, and finally out to your speakers - no problem. Lay down your synths, connect the wires and you're done.

Buzé

  • Buzé - 100% pattern-based sequencer with envelopes and pianorolls. Supports a wide range of plugins for generating and processing audio, MIDI, value and note signals. 30+ built-in plugins. Supports VST, Buzz, Psycle, LADSPA and Lunar plugins natively

Imports ARMZ, BMX, IT, S3M, MOD, MID, SID song file formats. Wavetable can import WAV, MP3, FLAC, IFF and many more file formats. Features a basic wave editor. Full undo/redo, scripting support, configurable keyboard shortcuts and window layouts. Windows.

MIDI looping

sequencer64 has no record midi control, nonsequencer only has start/stop midi cc control, giada only has 'channel' (single sample/sequence) specific midi control.

Loop Drop

JavaScript/Electron based, slow, audio jitters.

Multi-Arp

  • https://github.com/BN701/Multi-Arp - Non-linear pattern sequencer with the focus on live exploration, improvisation and (sooner or later) performance. Non-linear means having more than one list of events playing at a time. The lists are interleaved, or played all at once, or played in any combination in between. A real time midi looper adds additional elements to a pattern. A single instance of the app plays one polyphonic pattern on one midi-channel. Run multiple, synchronized instances to play on different channels. Ableton Link synchronization protocol is used to keep everything playing together. You do not need to have Ableton Live or any of its components for this to work.

Red background highlight of active paramater

  • pattern - contains one or more step lists and/or real time lists.
  • step list - a series of notes, chords or rests played out with regular timing.
  • step value - controls the rate of step list playback and indeed the overall ‘pulse’ of the sequencer. A value of 4 is essentially a quarter note, 8 is an eighth-note and so on, and values 3, 7, etc divide a four beat bar as you would expect. Step values (and beat values) can be non-integer.
  • trig list - one per pattern, allows for any combination of steps from each step list to be played simultaneously. Individual trig stages can generate additional copies of an event to be scheduled at repeating times during and after a step. This enables ratcheting effects, midi echos and one shot arpeggiated chords generated using intervals from the current pattern scale (see later).
  • real time list - a more traditional looper-style thing intended for the capture of phrases to be played alongside the step list data. Note events are captured and stored using beat values according to the Ableton Link timeline and are played back, quantized or unquantized, independently of step value. Playback rate for each real time list can be varied, as can loop length and start offset. Real time lists also support import of midi files. Step lists and trig lists have no interaction with real time lists.

A pattern has other properties including step value, default gate length and default note velocity. They also have a scale and a feel. These are transformations applied on-the-fly to note data as it is played back.

  • Scale - transforms map notes onto major, minor and modal scales allowing transpositions based on intervals within those scales. (The problem of how to handle accidentals - notes that are not part of the current scale - is very much up in the air.
  • Feel, or swing, applies a time shift to steps that fall between beats as defined by Ableton Link. A feel map defines any number of markers which control how events are swung between beats. One marker gives the familiar ‘jazzy’ swing, but two or more markers opens up the kinds of micro-timing I find in West African music and doubtless other areas or world music. The feel map doesn’t vary from beat to beat. Feel does not affect real time data.
  • Pattern chains allow patterns to be played in any order. Patterns can be switched on bar boundaries as defined by Ableton Link, or can be switched naturally when their own internal cycles come to completion. Steps in the pattern chain will play in succession or a ‘goto next’ value can be set. Chain steps can be repeated a number of times before switching or set to repeat indefinitely.


Midi Note entry

  • real time entry mode - which operates as a standard midi looper.
  • step mode - Chords or single notes are played on the midi keyboard, requires use of the PC keyboard to enter rests and close a phrase.
  • quick mode - involves holding down a note or notes. On release of the last key, the note set is entered as a monophonic sequence. There is no way to enter chords or rests in this mode.

Creation and editing of all note data is possible from within the app, but this is only intended for small additions or minor tweaks.

use
  # shows the current status, either P: or GLOB: with a summary of current settings.
use g / globals / p / pattern
  # use step, gate, velocity, scale and feel between global settings buffer or from the currently playing pattern

stat / status
  # Shows a quick summary of global parameters: Number of patterns loaded in the sequencer, Whether edit lock on or off, Current default velocity and gate
run
  # starts the sequencer on the next Ableton Link quantum boundary.
stop
  # stops the sequencer on the next Ableton Link quantum boundary.

q n.nn
  # Sets the Ableton Link quantum. This is effectively loop length for the entire sequencer.
  # The new quantum value will take effect when the current quantum ends.

step n.nn
  # Sets the step value for the sequencer. The value is stored globally or with the pattern that has edit focus,
  # depending on whether use is set to global or pattern.
new [patternlabel]
 # Adds an empty pattern to the end of the pattern list. Anything you type after the word 'new' will be used as a label.
 # The empty pattern will have one empty step list and no real time lists. Edit focus will be set to point to the new pattern.

play nn
cue nn
  # change the playing pattern number. The pattern will change on the next quantum boundary.
nn
  # change the playing pattern number if playlist chaining is off.

e / edit
  # use the pattern menu to set edit focus
e nn
  # sets edit focus, which shows which pattern is set to receive subsequent pattern commands.

lock on
  # sets edit focus to follow the currently playing pattern, so if the playing pattern is changed, edit focus changes too.
  # This works when pattern chain mode is active, too. If edit is used to set edit focus directly, lock is turned off automatically.
lock off
  # turns edit focus lock off

label n/name
  # Sets a label for the current pattern.

midi / m / channel / chan
  # Parameters: n[umber], real time, step, quick, off

m 3
  # set midi output channel to 3

m s
  # step mode
m q
  # quick mode
m rt
  # real time mode
m off
  # switch midi out off

<Tab> / <Shift-Tab>
p / page 1 / page 2 / page hold
  change lower page display mode between step list, real time list and scale transposion activity


copy
  # copies the pattern with edit focus to the end of the pattern list with its position reset and its label will have the word 'copy' appended.
  # If lock is enabled, edit focus doesn't change.

reset
  # causes the current edit pattern's internal position counter to be reset to zero, so all lists will start playing from the beginning.
  # If the edit pattern also happens to be playing, then the reset will happen when global beat value returns to one.
reset all
  #  reset all patterns when global beat value returns to one.
reset beat
  # for situaions where the current beat is incrementing in values that never reach an exact multiple of the current Ableton Link quantum value.
  # It takes the current beat value and shifts it to the next whole number. The sequencer will take this into account when it schedules its next step and there will be an audible glitch in timing.

autoreset on
  # whenever a new pattern starts playing its list positions will start from the beginning each time.
autoreset off
  # a pattern will pick up playing from where it was interrupted the last time is was playing

clear
  # Clears the pattern which currently has edit focus. All step lists and real time lists are deleted.
  # The pattern's scale table and trig list is reset. 

delete
  # Deletes the pattern with edit focus and places a copy on the undo list.
delete all
  # If delete all is used, all patterns are deleted at once.

undo
  # Whenever a pattern is deleted or cleared, a copy of it is placed on the undo list. This command takes that copy and puts it back at the end of the pattern list. If the undo is used after a clear, the cleared pattern will remain in place.
vel n / velocity n
  # Sets default velocity for notes that do not have this values set individually.

gate n.nn%
  # Gatelength is set as a percentage of current beat step length. e.g. 50% means the gate will be held open for half of each step.
gate h / gate hold
  # If a note is followed be one or more rests, turning on gate hold means that note will be held open until the final rest, at which point normal gatelength is used.
gate n / gate normal
  # Turn gate hold off
quit / exit
  # quit

mloop

  • mloop - a live JACK MIDI looping system, using jack-midi. Loops are recorded, optionally with beat quantisation, and can then be played back, either once or looping. Console based. Last updated 2011.
python2 ./waf configure
python2 ./waf
python2 ./waf install
q
  # toggle quantization
d
  # toggle delay before record
s
  # synchronise playback
b
  # set bpm. enter to exit

7
  # select loop 7, or such

t
  # change loop tempo. up/down arrow keys or type bpm. enter to exit

r
  # start recording loop. press again to finish.
z
  # start loop (once)
x
  # start loop (loop)
 
c
  # stop loop
C
  # stop all
e
  # erase loop

S
  # save
L
  # load

LiveLoop

  • LiveLoop - a live midi sequencer that enables you to record loop while playing piano on a keyboard. You can record, play or delete midi tracks directly with your midi controller. You can connect LiveLoop to other synthesizer software like Reason, Ableton, etc. Java, dead?

mol

  • https://github.com/MaurizioB/mol - MIDI Organic Looper, a simple MIDI looper which does not aim to work like standard sequenced loopers. It just takes what you play and, once it recognizes a repetition, it plays. last updated 2016.

dimooper

Rust, somewhat buggy. Slow updates.


locoseq

  • locoseq - a midi sequencer designed for live playing looping tracks. You can create control tracks (called "meta-tracks") that drive the sequencer (schedule track x, mute, change tempo...) and you can configure how the sequencer reacts on a given input (midi-in port or keyboard). The application is build on top of the jack API, it is written in ocaml (except some C code) and uses GTK+ and glade (lablgtk2) for its GUI. The source code is available under a classic MIT license. Last updated 2008.

TISM

  • TiSM - an interactive & programmable software which allows to transform, record and sequence generic Midi messages in Real - time. The main idea is to provide a system that behave like a hard sequencing machine more than a traditionnal computer sequencer software. TiSM allows to program the system behaviour by associating simple Tcl scripts with received messages (Midi keyboard, controller, computer keyboard) or sequenced messages, so the tool can be used for a lot of different real-time applications. The tool is fully customisable in order to answer to the different user needs. TISM is based on a TCL interpreter and each system functionnality is accesible with a special TCL function. The users can write TCL scripts which are executed at run-time. This allows to control the sequencer in response to external events (MIDI, keyboard... ) or scheduled events ( from the sequencer itself). Last updated 2008.


MØØP

  • MØØP - Midi Looper-Transformer, records all your key-strokes and knob twists and loops that, turning your instrument into a sort of player piano (that you can keep playing on). infinite overdub undo/redo - Windows/Mac

Open Sound Control

  • http://opensoundcontrol.org/ Open Sound Control (OSC) is a protocol for communication among computers, sound synthesizers, and other multimedia devices that is optimized for modern networking technology. Bringing the benefits of modern networking technology to the world of electronic musical instruments, OSC's advantages include interoperability, accuracy, flexibility, and enhanced organization and documentation.


  • http://en.wikipedia.org/wiki/Open_Sound_Control - a content format developed at CNMAT by Adrian Freed and Matt Wright comparable to XML, WDDX, or JSON. It was originally intended for sharing music performance data (gestures, parameters and note sequences) between musical instruments (especially electronic musical instruments such as synthesizers), computers, and other multimedia devices. OSC is often used as an alternative to the 1983 MIDI standard, where higher resolution and a richer musical parameter space is desired. OSC messages are commonly transported across the internet and within home and studio subnets using (UDP/IP, Ethernet). OSC messages between gestural controllers are usually transmitted over serial endpoints of USB by being wrapped in the SLIP protocol.



Programming

  • liblo - an implementation of the Open Sound Control protocol for POSIX systems, started by Steve Harris and now maintained by Stephen Sinclair. It is released under the GNU Lesser General Public Licence version 2.1 or greater. This means that if it is included in closed-source systems, it must be dynamically linked such that the LibLO code remains freely modifiable.
  • Oscpack - a set of C++ classes for packing and unpacking OSC packets. Oscpack includes a minimal set of UDP networking classes for Windows and POSIX. The networking classes are sufficient for writing many OSC applications and servers, but you are encouraged to use another networking framework if it better suits your needs. Oscpack is not an OSC application framework. It doesn’t include infrastructure for constructing or routing OSC namespaces, just classes for easily constructing, sending, receiving and parsing OSC packets. The library should also be easy to use for other transport methods (e.g. serial).
  • https://trac.v2.nl/wiki/pyOSC - A Simple ​OpenSoundControl implementation, in Pure Python. This module is loosely based on the good old ​SimpleOSC implementation by Daniel Holth & Clinton McChesney. It has been mostly rewritten, and a whole set of new Classes has been added, providing support for OSC-bundles, a simple OSC-client, a simple OSC-server, threading & forking OSC-servers and a more complex 'Multiple-Unicast' OSC-client that supports subscriptions and OSC-address based message-filtering.


Utils

  • sendOSC - a text-based OpenSoundControl client. User can enter messages via command line arguments or standard input; sendOSC formats these messages according to the "OpenSoundControl" protocol, then sends the OpenSoundControl packet to an OpenSoundControl server via UDP or Unix protocol. The "sendOSC" program is available as source code and as compiled binaries for Mac OS X. It has been tested under Linux, Mac OS X, and SGI IRIX.
  • https://github.com/fundamental/oscprompt - A generic OSC based prompt for inspecting and manipulating clients. Prompt accepts: - TAB - disconnect - quit - exit - connect 'port number' - general OSC messages sent to the client. It assumes that the client will respond to /path-search:ss for tab completion and field information. This is currently Beta software and as such expect some interesting behavior from time to time.
  • https://github.com/7890/oscc - a Java program that allows to "play around" with OSC (UDP). It can be useful to manually interact with another OSC program. Using mappings and JavaScript methods, oscc supports to quickly develop and test inter-process communication models, OSC APIs and prototypes. oscc should be run only in trustful private subnets, since it can be configured to run native commands.



  • udp repeater / dumper - dump UDP data from a port to stdout, forward/relay UDP data to one or more UDP ports.
  • http://www.rossbencina.com/code/oscgroups - a system for routing OSC messages between a group of collaborating users. It is designed to make joining and leaving a group simple, and to overcome the problem of connecting multiple users behind different NAT routers using a NAT traversal server with the usual “NAT hole punching” scheme (you can put that into google for more info). OSCgroups also implements basic group functionality similar to the concept of channels in internet relay chat.
  • https://github.com/OpenMusicKontrollers/oscmux - redirects Open Sound Control messages coming from an arbitrary number of local ports to an arbitrary number of host ports with arbitrary delays and filtering according to path and format strings.



  • https://github.com/OpenMusicKontrollers/Tjost - {T}jost is {J}ackified {O}pen{S}oundControl {T}ransmission. Tjost makes use of JACK's new metadata API. However, as this is only available in JACK1, if you link to JACK2, it won't use it.
  • https://github.com/benchun/flosc - standalone application written in Java that sends and receives OSC packets via UDP, translates bidirectionally between binary OSC packets and an XML encoding of OSC packets, and sends and receives XML entities via TCP in a way that’s compatible with Flash’s XMLSocket feature.



  • https://github.com/YCAMInterlab/Duration - controls change over time. With a simple one window approach, the cross platform stand alone application manages lists of tracks to compose changing data over a fixed duration. The application sends values over OSC and can be configured through OSC messages.

Control surfaces

  • https://github.com/AMMD/kvGhislame - OSC Touchscreen controller (multitouch) based on Kivy libs (Open source Python library for rapid development of applications that make use of innovative user interfaces, such as multi-touch apps.)


  • http://ecumedesjours.com/Mrmr/ - an ongoing open-source research project to develop a standardized set of protocols and syntax conventions to control live installations and multimedia performances via mobile devices. The project is currently spearheaded by Eric Redlinger, researcher-in-residence at Brooklyn Polytechnic University’s Integrated Digital Media Institute. macOS.
  • OSControl - a general purpose OSC sending/receiving user interface toolkit. Different types of Controls like Knob, Fader, Button and more can be used and configured for custom needs. Windows.


Sequencing

MIDI

  • https://github.com/ventosus/jack_osc - Routing Open Sound Control messages via vanilla JACK MIDI to build low-latency event translator/filter chains and map unconventional controller data to musical events




  • Eteroj - Open Sound Control for LV2. (De)Cloak - Embed OSC in MIDI Sysex messages. Control - translate OSC messages directly to LV2 Control ports and features automatic range detection. Disk Record/Playback of OSC to/from disk. IO A plugin able to inject/eject OSC packets into/from the plugin graph to/from network and serial lines. Ninja Embed Turtle RDF in OSC as string. (Un)Pack Embed arbitrary 1-3 byte MIDI commands (but Sysex) in OSC messages.


  • illucia - a patchbay controller by chris novello. It lets you use physical cables to connect things like videogames, music software, text editors, synthesizers, and more. It has a free suite of interconnectable games and software, plus it speaks OSC so it works with many existing programs.


Hardware

Drum machine sampler/sequencer

Hydrogen




  • makeh2kit - A BASH script to auto-generate h2drumkit files. Requires bash v4 and gawk. Running makeh2kit with no arguments will scan the current directory for FLAC files and create a h2drumkit file named after the current directory. Instruments are named after the audio files minus their extension. Audio files can be treated as individual instruments or as instrument layers grouped either by sub-directory or by file name with numeric prefixes/suffixes indicating the layers.

orDrumbox

  • orDrumbox is a free drum machine software, designed to be as creative as possible with unusual features : auto-composition, polyrythmes, unusual arpeggiator, automatic sounds/track matching , custom softsynths, lowfi rendering, etc. This tools can compose bass line and complete songs using included drum kits with the audio sequencer functions.

Jackbeat

  • Jackbeat is an audio sequencer running on Linux, Windows and OS X, for musicians and sound artists: Drummachine interface with animations for easy and playful editing. Built for both composition and live setups with high interactivity needs. Extremely easy to use but yet powerful by connecting with other applications and plugins using JACK and OSC. Loads and saves .jab files, Jackbeat's xml+tar open file format. Supports native audio devices, PulseAudio and JACK. Last commit 2015-02-13.

Slag

  • Slag - aims at developing a multiplatform pattern-based audio sequencer. As for now, it can be used as a simple drum box on GNU/Linux, NetBSD and Mac OS X. It features : real-time editing, live audio output with libao or JACK, optional individual ports for tracks when using JACK, a virtually unlimited number of tracks and patterns, volume settings for tracks and pads, the ability to link song parts together, real-time audio file output, english and french localisations. Last commit 2008.

Breakage

  • Breakage - a four channel drum machine, usually set to play kick, snare, open and closed hi-hat samples on each channel. To train the neural network in Breakage, you’d write a collection of patterns, tell the net which ones to use as inputs and outputs, then set it to train. By default the kick and snare are inputs, open and closed hats are outputs. After training you can switch the net into performance mode. When performing, it will create new hi hat parts as you change the kick and snare hits.

pyTrommler

Groovit

  • Groovit is essentially a drum matrix which can handle any samples, combined with, at least and depending on the CPU strength, two analog synths voices. Any voice can go through several effects, (for instance a dynamic filter, and an echo/reverb). It is intended to be as "real-time" as possible, depending on CPU strength mostly. It computes sounds internally with 32bit range, and outputs at 16. It also has several resonant filters that quickly bring you handsome noise.

Gneutronica

  • Gneutronica - a simple MIDI drum machine and rudimentary sequencer program. If you are familiar with Hydrogen, you'll find yourself pretty much at home with Gneutronica. Gneutronica lets you create patterns of melody or drum beats one measure long, allows you to divide up each measure into however many beats you like (several times simultaneously, if you want) and then arrange those patterns into a sequence for playback. Essentially it's a tool with which to create drum tracks and instrument tracks and play them back via MIDI devices.

Fultron 2002

TK-707

  • TK-707 - An "7x7" type midi drum sequencer for Linux, based on functionality of Roland's TR-707. Current Version is 0.8, March, 2005

RhythmLab

  • RhythmLab - "because I couldn't find any software which would easily let me construct and visualize polyrhythms (rhythms in which a measure is divided into different subdivisions in different voices: for example, 5 against 7)."

Beatfish

  • Beatfish is a music machine. It has 8 drum channels, two feedback delays and a VCF303 filter. You can drag notes around on the drum machine and there is a scrub bar for scrubbing on the loop as it is being played.

DrumPatterns

  • DrumPatterns - a free, open source, web oriented drum patterns generator. DrumPattern is a tool to learn drum patterns. With DrumPattern, you can learn the "rudiments". And you can learn much more. This tool is exhaustive, you select the members you want to study, some rules to avoid silly patterns (according to you), and the pattern length. DrumPatterns generates Midi files.

edrummer

  • edrummer - a sampler aimed to be triggered by e-drums. Additionaly it can be used to program drum parts as a plugin in various notation/sequencing/recording platforms (e.g. rosegarden, qtractor, ardour etc.).

edrummer live

Snare

LDRUM

  • LDRUM - an open-source drummachine that offers ten channels, realtime control, a simple pattern sequencer and a graphical user-interface. It currently runs under Linux only, it is developed in C++ and uses JACK, ALSA, Qt and LADSPA (it's a JAQL app;)

Text file sequencer

Beats

  • Beats - a command-line drum machine written in pure Ruby. Feed it a song notated in YAML, and it will produce a precision-milled *.wav file of impeccable timing and feel.

droguedrums

  • droguedrums - a text file based drum sequencer for the command line. It reads a definition of drum sets, parts and sequences from a text file and plays it back as midi. No sounds are provided.

Drumpiler

  • Drumpiler - the Compiled Drum Machine. Copyright (C) 2003 by Stefano Maini (a.k.a.Sty)

jdkdrum

  • jdkdrum - Command Line Drum Synth Program For Linux. For Linux with Alsa or OSS sound drivers. This program supplies a simple back end drum machine syntheses engine using raw 16 bit mono drum samples and reads stdin for an ascii drum pattern description.

Android

Dmach

Mac

MiniSpillage

Ba-Dum-Tss Machine

  • Ba-Dum-Tss - a step sequencer which allows one to sequence drum beat and bass notes. This is a concept prototype which is aiming to enable people with minimal musical background create music. I'd love your feedback. Sadly, only Mac builds exist as of now, Linux and Windows builds out soon. Feel free to download the source code and create your own makefiles for other operating systems.

Windows

Percumat

  • Percumat 2 - a versatile Rhythm machine for backing drums percussion - "definitively not an 808 or 909 type thingie". Windows VST.

Cubix

  • Cubix - a drumsynth/sampleplayer with an onboard arpeggiated bassline synth. Each drum section has its own dual X-Fade sequencer section for beat mixing, as well as an Auto-Mix function. Designed with live operation in mind, Cubix can be used for making complex beats on the fly that can be randomized, mixed, matched and manipulated in a number of ways. Windows VST.

Minimal

  • Minimal - a mini groovebox-style drum machine with an onboard bass synth. A quick and easy way to make some beats on the fly. Windows VST.

Other

Audio and MIDI looping

Giada

  • Giada - a free, minimal, hardcore audio tool for DJs, live performers and electronic musicians. How does it work? Just pick up your channel, fill it with samples or MIDI events and start the show by using this tiny piece of software as a loop machine, drum machine, sequencer, live sampler or yet as a plugin/effect host. Giada aims to be a compact and portable virtual device for Linux, Mac OS X and Windows for production use and live sets.


What can you control with MIDI:

  • Global elements — sequencer, metronome, main volumes and so on, stored inside the configuration file and you set them once;
  • Per-channel elements — channel on/off, mute, volume, solo and so on, stored inside the patch and you set them whenever you create a new song.

No MIDI mod system, each binding is 'channel' specific ('channel' being the Giada term for a sample or sequence), which doesn't seem like it would scale well.

Soundscape

Boodler

  • Boodler is an open-source soundscape tool -- continuous, infinitely varying streams of sound. Boodler is designed to run in the background on a computer, maintaining whatever sound environment you desire. Boodler is extensible, customizable, and modular. Each soundscape is a small piece of Python code -- typically less than a page. A soundscape can incorporate other soundscapes; it can combine other soundscapes, switch between them, fade them in and out. This package comes with many example soundscapes. You can use these, modify them, combine them to arbitrary levels of complexity, or write your own.

SoundScape Renderer

Klangwunder3000

Random Parallel Player

  • https://github.com/hilbrichtsoftware/random-parallel-player - Takes a bunch of audio files as tracks and plays them back randomly creating new music each playthrough. The core rule of RPP: No human interaction once the playback has started. RPP is based on an idea of Louigi Verona. The included audio samples in example.rpp were created by him. You can read about the original project here

Atmosfear

  • https://github.com/teragonaudio/Atmosfear - a VSTi plugin which generates random atmospheric soundscapes with samples scraped from FreeSound. We had originally imagined that the plugin colud generate soundscapes resembling parks, public places, nature, etc. However, the resulting sounds that it makes are generally quite surreal and creepy, hence the name. :)

Web


  • myNoise - background noises and relaxing soundscape generator, web/app


Sonification


Algorithmic / generative

oof mess


  • https://en.wikipedia.org/wiki/Algorithmic_composition - the technique of using algorithms to create music. Algorithms (or, at the very least, formal sets of rules) have been used to compose music for centuries; the procedures used to plot voice-leading in Western counterpoint, for example, can often be reduced to algorithmic determinacy. The term is usually reserved, however, for the use of formal procedures to make music without human intervention, either through the introduction of chance procedures or the use of computers. Some algorithms or data that have no immediate musical relevance are used by composers as creative inspiration for their music. Algorithms such as fractals, L-systems, statistical models, and even arbitrary data (e.g. census figures, GIS coordinates, or magnetic field measurements) have been used as source materials.




  • https://en.wikipedia.org/wiki/Pop_music_automation - field of study among musicians and computer scientists with a goal of producing successful pop music algorithmically. It is often based on the premise that pop music is especially formulaic, unchanging, and easy to compose. The idea of automating pop music composition is related to many ideas in algorithmic music, Artificial Intelligence (AI) and computational creativity.


Resources

  • Algorithmic.net - a lexicon of systems and research. This site provides a comprehensive research resource for computer aided algorithmic music composition, including over one-thousand research listings, over one hundred system listings, cross referenced links to research, links to software downloads and documentation, and web-based tools for searching and filtering the complete lexicon.



  • Procedural Audio Now! - is a monthly Queen Mary University of London meetup for people interested in developing Procedural Audio systems for video games and other interactive media.


Methods

  • https://en.wikipedia.org/wiki/Musikalisches_Würfelspiel - was a system for using dice to randomly 'generate' music from precomposed options. These 'games' were quite popular throughout Western Europe in the 18th century. Several different games were devised, some that did not require dice, but merely 'choosing a random number.'


  • https://en.wikipedia.org/wiki/Markov_chain#Music - employed in algorithmic music composition, particularly in software such as CSound, Max and SuperCollider. In a first-order chain, the states of the system become note or pitch values, and a probability vector for each note is constructed, completing a transition probability matrix (see below). An algorithm is constructed to produce output note values based on the transition matrix weightings, which could be MIDI note values, frequency (Hz), or any other desirable metric.


  • Computer Music Algorithms (4th Ed 2018) - explains algorithmic music and contains 57 programs, 20 styles, & 24 chapters that will generate music of different styles, new each time executed, as a midi file. You need only a 'c' compiler and a midi player to play the midi files generated. The 'styles' produce music from ancient Greek music to the algorithm of Kircher (1650) to all styles including the game music and the author's own unique fractal music and others of his. The algorithms are explained in technical terms of music theory, including the special data structures constructed. There are folders of c files for each chapter with code, that may be compiled and when executed, generate the midi files. The last program added here is the ancient Greek music program, which included two years of intense research. Also, my fractal music programs are a result of 20 years of development and improvement. Reverse music was nearly my dissertation topic, but it was solved in one of the chapters.


  • GERP - an attempt to generate stylistically valid EDM using human-informed machine-learning. We have employed experts (mainly Chris Anderson) to hand-transcribe 100 tracks in four genres: Breaks, House, Dubstep, and Drum and Bass. Aspects of transcription include musical details (drum beats, percussion parts, bass lines, melodic parts), timbral descriptions (i.e. “low synth kick, mid acoustic snare, tight noise closed hihat”), signal processing (i.e. the use of delay, reverb, compression and its alteration over time), and descriptions of overall musical form. This information is then compiled in a database, and machine analysed to produce data for generative purposes. Two different systems have been created to interpret this data: GESMI (created by Arne Eigenfeldt/loadbang) and GEDMAS (created by Chris Anderson/Pittr Patter). GEDMAS began producing EDM tracks in June 2012, while GESMI produced her first fully autonomous generation in March 2013. It is interesting to note the similarities of the systems (due to the shared corpus) and the differences (due to the different creative choices made in the implementation). Closed source?




  • Ryth(M)aid + GUI - Little GUI - Jazz - Practice - Program, which plays a bass, drums and piano track based on a given set of chord changes and probabilities. Uses TSE3 for midi code and gtk+ for GUI.



  • SoundHelix - a free, versatile and flexible Java framework for composing and playing algorithmic random music based on constrained random generation (CRG). SoundHelix is an algorithmic random music generator (including a built-in MIDI sequencer) which can play generated songs on MIDI devices in real-time. It can also write the generated songs as MIDI files.
  • MusicAlgorithms - interactive tools that provide a unique learning experience for users, regardless of their musical training. Students of music composition can explore algorithmic composition, while others can create musical representations of models for the purpose of aural interpretation and analysis. Here, the algorithmic process is used in a creative context so that users can convert sequences of numbers into sounds.


  • Cellular automata and music - Take computers, mathematics, and the Java Sound API, add in some Java code, and you've got a recipe for creating some uniquely fascinating music. IBM Staff Software Engineer Paul Reiners demonstrates how to implement some basic concepts of algorithmic music composition in the Java language. He presents code examples and resulting MIDI files generated by the Automatous Monk program, which uses the open source jMusic framework to compose music based on mathematical structures called cellular automata.
  • Jnana is a generative musical accompaniment system integrated into Ableton Live. It has the ability to analyze MIDI input and generate new material in a similar style. It can analyze input in real-time or from desired clips within Ableton and can populate Ableton clips with new material.



  • Infno - an algorithmic generator of electronic dance music fully implemented in SuperCollider 3, the latest generative music work in a line of 'Infinite Length Pieces'. The program attempts to model the production of electropop and dance music styles with a closer union of parts than typical in many previous algorithmic composition systems. Voices (including a percussion section, bass, chord and lead lines) are not independently created: the parts can cross-influence each other based on underlying harmonic ideas, rhythmic templates and already generated lines. The eventual system posits a potential for any one part to influence or in the extreme force the recalculation of another, both from top-down and bottom-up information impacting on compositional preference. In particular, dynamic programming is used to choose melodic lines for counter melodies under cost constraints of register, harmonic template, existing voices and voice leading heuristics.



  • Tapis Bourgeois is a batch music generator for contrepoint and tonal music, written in PERL. It outputs a partially random midifile, constrained by the mesure-wise configuration file.
  • Cycle Plus One is a musical pattern generator that can be used to explore interesting sonic experiences. Using a fixed rhythmic profile, a steady eighth note pulse, you can experiment with tonality and density within a specified cycle of beats. The application can help composers create a matrix of tones that can be exported as MIDI or musical XML. From there, the material can be worked with further in a sequencing or music notation program. Cycle Plus One is meant to be a starting point for experimentation, allowing the composer to play with variation using a minimal amount of musical material.
  • GRAMophone II is an algorithmic generator of music composition. The music is generated using two kinds of formal grammar: Chomsky's regular grammar (or Type 3) for a TOP DOWN approach to the composition and a reduced version of Lindenmayer grammar for a BOTTOM UP approach.




  • Grammidity - a preliminary release of a reworking of a reworking of a program I wrote back in the mid 90's. This is a genetic programming system based on the idea of using a kind of grammar as the underlying gene. Grammars are stored in a raw format, then parsed into productions. Those productions are expanded. The resulting strings are then evaluated (usually in a kind of basic stack machine) and the evaluations rated and evolved.
  • Cycle Plus One - a musical pattern generator that can be used to explore interesting sonic experiences. Using a fixed rhythmic profile, a steady eighth note pulse, you can experiment with tonality and density within a specified cycle of beats. The application can help composers create a matrix of tones that can be exported as MIDI or musical XML. From there, the material can be worked with further in a sequencing or music notation program. Cycle Plus One is meant to be a starting point for experimentation, allowing the composer to play with variation using a minimal amount of musical material.



  • Random Phase Music Generator - small program that generates random phase music. Phasing is the process of looping the same pattern of music on two or more tape recorders (running at slightly different speeds), so they will slowly shift out of synchronization and produce the out of phase effect. Play with this program to experiment with this technique!



  • JChordBox - a library tool that can generate backing tracks from a chord progression and a music style (containing music templates or grooves). A music Style is describe using an XML and a MIDI file. You can generate an XML Style file from a MIDI file by adding markers to delimit grooves (or music templates). An XML Song file describes a chord progression and sets the music style to use. JChordBox comes with several command line tools (GenerateSong, CreateStyleFromMidiFile, SongPlayer …).




  • https://github.com/MannyPeterson/Mozart - The Mozart Digital Composer project is an attempt at a heuristics based approach, in place of traditional neural networks, for creating computer generated music. The basic principle is to use computer software, in this case a Java SE application, to compose and play, using a MIDI device, music that imitates, as closely as possible, music composed by a Human. The project is currently under active development and many planned features, such as the ability to select the type of scale (e.g major, minor, mixolydian, etc) and key, are in the works.


  • https://github.com/chronopolis5k/Beatfox - a free Csound generative beat tool - part of a larger compositional environment I'm building. It will constantly create perfectly looped rhythms that can easily be dropped into a program like Ableton Live. Leave it running all night, and you'll wake up with hundreds of loops in your folder! It sounds similar to a Nord Drum or modular analog drums. It can also produce some 808-ish sounds.


One-line algorithmic C

BackupBand

  • BackupBand - a music auto-arranger. It has a virtual drummer, bassist, and rhythm guitarist. These 3 "musicians" follow your chord changes live (as you play some MIDI instrument, such as a keyboard) and they play along with you in perfect time. It's like having a live rhythm section backing you up. The rhythm section knows how to play in 60 different styles such as Rock, Disco, HipHop, Heavy Metal, Reggae, Swing, various latin styles, etc. You can also create your own styles for them to play. The bassist plays a rickenbacker, fender precision, synth, and double (acoustic) bass. The guitarist plays a les paul, steel string, and nylon string. The drummer plays 6 kits. You can also create your own multi-sampled guitars, basses, and kits for them to play.

PureData



Tensorflow


Evolutionary

  • https://en.wikipedia.org/wiki/Evolutionary_music - the audio counterpart to evolutionary art, whereby algorithmic music is created using an evolutionary algorithm. The process begins with a population of individuals which by some means or other produce audio (e.g. a piece, melody, or loop), which is either initialized randomly or based on human-generated music. Then through the repeated application of computational steps analogous to biological selection, recombination and mutation the aim is for the produced audio to become more musical. Evolutionary sound synthesis is a related technique for generating sounds or synthesizer instruments. Evolutionary music is typically generated using an interactive evolutionary algorithm where the fitness function is the user or audience, as it is difficult to capture the aesthetic qualities of music computationally. However, research into automated measures of musical quality is also active. Evolutionary computation techniques have also been applied to harmonization and accompaniment tasks. The most commonly used evolutionary computation techniques are genetic algorithms and genetic programming.





Windows VST

  • Cube Breath - a standalone application for Windows created with SynthEdit and SAVIhost, but will also run as a VST effect. It is a realtime, fully automatic pop music generator. Audio input is vocoded in tune with the music, allowing the user to "instantly transform their shopping list, answering machine messages or office memos into floor-filling number one hit singles".


  • Breath Cube - employs the 'pop music generating' engine of Cube Breath and adds a 3-band synthetic voice to "challenge your listening skills". Breath Cube was created using SynthEdit and runs as a standalone with the included SAVIHost application or as a VST plug-in.


Commercial


  • Mixtikl is a dedicated, integrated & powerful multi-platform generative music editor, mixer, arranger and cell sequencer. It includes many modifiable generative music templates that you can easily mix together. To generate its sounds it features the Partikl Sound Engine, a powerful sound source comprising a modular synth with Soundfont (SF2)/DLS support + live FX. - $
  • Noatikl 3 Noatikl, an immensely deep & powerful app for generative MIDI music composition AND sound design, Generative Music Composer → for iOS, Mac, Windows, VST/AU. - $

Web

See also WebDev#Web Audio API, Drumming#Web

Background

Jamming

NINJAM

  • NINJAM - open source (GPL) software to allow people to make real music together via the Internet. Every participant can hear every other participant. Each user can also tweak their personal mix to his or her liking. NINJAM is cross-platform, with clients available for Mac OS X, Linux, and Windows. REAPER (our digital audio workstation software for Windows and OS X) also includes NINJAM support (ReaNINJAM plug-in).

NINJAM uses compressed audio which allows it to work with any instrument or combination of instruments. You can sing, play a real piano, play a real saxophone, play a real guitar with whatever effects and guitar amplifier you want, anything. If your computer can record it, then you can jam with it (as opposed to MIDI-only systems that automatically preclude any kind of natural audio collaboration1).

Since the inherent latency of the Internet prevents true realtime synchronization of the jam2, and playing with latency is weird (and often uncomfortable), NINJAM provides a solution by making latency (and the weirdness) much longer. Latency in NINJAM is measured in measures, and that's what makes it interesting. The NINJAM client records and streams synchronized intervals of music between participants. Just as the interval finishes recording, it begins playing on everyone else's client. So when you play through an interval, you're playing along with the previous interval of everybody else, and they're playing along with your previous interval. If this sounds pretty bizarre, it sort of is, until you get used to it, then it becomes pretty natural. In many ways, it can be more forgiving than a normal jam, because mistakes propagate differently. Part tool, part toy, NINJAM is designed with an emphasis on musical experimentation and expression.


  • Wahjam - a fork of NINJAM and remains compatible with the network protocol. It also includes support for the jammr online jamming platform.
  • Jamtaba - a free (and open source) software to connect in ninjam servers and play music jam sessions with people around the world. JamTaba can be used as a multiplatform standalone software, VST (Windows) or AU (Mac OSX) plugin. Using the standalone version you can use your audio and MIDI devices and load VST/AU plugins inside JamTaba (JamTaba standalone is a VST/AU host). Using the VST/AU plugin you can use JamTaba in your preferred DAW and send your audio tracks to JamTaba, and Jamtaba will stream these audio tracks to ninjam servers. Off course JamTaba will receive and play the other musicians audio streams, so you can play with others and have some fun playing online!


  • http://ninbot.com/ - Jam online with musicians from around the world. Record and share your sessions.


  • Selected Jam Sessions - selections from jam sessions recorded through the wonders of NINJAM, the intervalic real-time online jam software. Most jams take place on the servers at ninbot and Ninjamer. Both servers have robotic listeners that capture jam sessions and archive the results to The Internet Archive. Jams are also streamed live over Icecast2 (ninbot - stream URL links work; ninjamer - stream URLs need manually entering or use the M3U links). The ninbot site provides a limited facility for editing captured jams.

TeamStream

TeamStream began development in February 2012 and is an open-source project which aims to continue where NINJAM left off; adding new visual and usability enhancements, in the hopes of making NINJAM-ing simpler and more enjoyable, especially for non-technical musicians. If you are a developer and would like to help out; feel free to fork this repo. The following is a list of some of the new features that have been added so far (more to come).

linjam

  • https://github.com/linjam/linjam/ - a cross-platform NINJAM client utilizing the libninjam library and built upon the JUCE framework. The first milestone (cross-platform NINJAM 0.06 equivalent) is now 84% complete.

The highest goal of the LinJam project (and it's predecessor TeamStream) is to flatten the pro-audio learning-curve; easing the intimidation that most non-technical musicians experience when they are first introduced to NINJAM. Some of the ways proposed to accompliish this include: offering a minimal interface with some reasonable default settings, some normalizing/conditioning features such as auto-gain and limiter, and the option to elect a "sound man" to actively set levels for other peers. It is hoped that these, along with the convenience features introduced with TeamStream, will make NINJAM welcome musicians without prior experience with audio production; which today is essentially a pre-requisite for getting decent sound into and out of NINJAM.

Tuning

  • FMIT (Free Music Instrument Tuner) is a graphical utility for tuning your musical instruments, with error and volume history and advanced features.
  • LINGOT is a musical instrument tuner. It's accurate, easy to use, and highly configurable. Originally conceived to tune electric guitars, it can now be used to tune other instruments. It looks like an analogue tuner, with a gauge indicating the relative shift to a certain note, found automatically as the closest note to the estimated frequency.
  • https://github.com/dack/tunescope - an oscilloscope style guitar tuner. It uses jack for audio input and opengl for rendering. The signal is displayed in both normal and XY mode, using an automatically selected not as the reference.

Speech

Recognition

  • Audiogrep - transcribes audio files and then creates "audio supercuts" based on search phrases. It uses CMU Pocketsphinx for speech-to-text and pydub to stitch things together. [98]
  • Simon is an open source speech recognition program that can replace your mouse and keyboard. The system is designed to be as flexible as possible and will work with any language or dialect.
  • Pi-Voice - The beginnings of a Star Trek-like computer. Run the program, speak into your microphone and hear the response from your speakers.
  • Wit.ai makes it easy for developers to build applications and devices that you can talk or text to. Our vision is to empower developers with an open and extensible natural language platform. Wit.ai learns human language from every interaction, and leverages the community: what’s learned is shared across developers.



Synthesis

to sort/categorise

rsynth

Festival

  • Festival - or The Festival Speech Synthesis System, offers a general framework for building speech synthesis systems as well as including examples of various modules. As a whole it offers full text to speech through a number APIs: from shell level, though a Scheme command interpreter, as a C++ library, from Java, and an Emacs interface. Festival is multi-lingual (currently English (British and American), and Spanish) though English is the most advanced. Other groups release new languages for the system. And full tools and documentation for build new voices are available through Carnegie Mellon's FestVox project (http://festvox.org)

Festvox

  • Festvox - aims to make the building of new synthetic voices more systemic and better documented, making it possible for anyone to build a new voice. Specifically we offer: Documentation, including scripts explaining the background and specifics for building new voices for speech synthesis in new and supported languages. Example speech databases to help building new voices. Links, demos and a repository for new voices. This work is firmly grounded within Edinburgh University's Festival Speech Synthesis System and Carnegie Mellon University's small footprint Flite synthesis engine.

MaryTTS

  • MaryTTS is an open-source, multilingual Text-to-Speech Synthesis platform written in Java. It was originally developed as a collaborative project of DFKI’s Language Technology Lab and the Institute of Phonetics at Saarland University. It is now maintained by the Multimodal Speech Processing Group in the Cluster of Excellence MMCI and DFKI.

eSpeak

  • eSpeak is a compact open source software speech synthesizer for English and other languages, for Linux and Windows. eSpeak uses a "formant synthesis" method. This allows many languages to be provided in a small size. The speech is clear, and can be used at high speeds, but is not as natural or smooth as larger synthesizers which are based on human speech recordings.

OpenSource SpeechSynth

MBROLA


Assistive Context-Aware Toolkit

Praat

  • Praat - doing phonetics by computer

Gnuspeech

  • gnuspeech - makes it easy to produce high quality computer speech output, design new language databases, and create controlled speech stimuli for psychophysical experiments. gnuspeechsa is a cross-platform module of gnuspeech that allows command line, or application-based speech output. The software has been released as two tarballs that are available in the project Downloads area of http://savannah.gnu.org/projects/gnuspeech. [102]

Project Merlin

mesing

Adobe VoCo

VST Speek

char2wav

loop


IPOX

  • IPOX - an experimental, all-prosodic speech synthesizer, developed many years ago by Arthur Dirksen and John Coleman. It is still available for downloading, and was designed to run on a 486 PC running Windows 3.1 or higher, with a 16-bit Windows-compatible sound card, such as the Soundblaster 16. It still seems to run on e.g. XP, but I haven't tried it on Vista.

Other

  • Jasper is an open source platform for developing always-on, voice-controlled applications
[106]


Analysis

ESPS

  • ESPS - Entropic Signal Processing System, is a package of UNIX-like commands and programming libraries for speech signal processing. As a commercial product of Entropic Research Laboratory, Inc, it became extremely widely used in phonetics and speech technology research laboratories in the 1990's, in view of the wide range of functions it offered, such as get_f0 (for fundamental frequency estimation), formant (for formant frequency measurement), the xwaves graphical user interface, and many other commands and utilities. Following the acquisition of Entropic by Microsoft in 1999, Microsoft and AT&T licensed ESPS to the Centre for Speech Technology at KTH, Sweden, so that a final legacy version of the ESPS source code could continue to be made available to speech researchers. At KTH, code from the ESPS library (such as get_f0) was incorporated by Kåre Sjölander and Jonas Beskow into the Wavesurfer speech analysis tool. This is a very good alternative way to use many ESPS functions if you want a graphical user interface rather than scripting.


NICO toolkit

  • NICO toolkit - mainly intended for, and originally developed for speech recognition applications, a general purpose toolkit for constructing artificial neural networks and training with the back-propagation learning algorithm. The network topology is very flexible. Units are organized in groups and the group is a hierarchical structure, so groups can have sub-groups or other objects as members. This makes it easy to specify multi-layer networks with arbitrary connection structure and to build modular networks.

Speech Research Tools

  • https://sourceforge.net/projects/speechresearch - Software for speech research. It includes programs and libraries for signal processing, along with general purpose scientific libraries. Most of the code is in Python, with C/C++ supporting code. Also, contains code releases corresponding to publishe


HAT

  • Higgins Annotation Tool - can be used to transcribe and annotate speech with one or more audio tracks (such as dialogue). Windows.

Binaural beats



Video

See also Video

  • Xjadeo is a software video player that displays a video-clip in sync with an external time source (MTC, LTC, JACK-transport). Xjadeo is useful in soundtrack composition, video monitoring or any task that requires to synchronizing movie frames with external events.




Gaze

Games

Logging

Apps

  • Augment - an amazing way to listen to the world. It harmonizes your listening experience which helps you to be less distracted and stressed. The Augment app filters your acoustic environment, takes out harsh sounds and turns stressful noise into harmonic sound environments. Try it now, it's a free download on the app Store!

DOS

macOS