Audio

From Things and Stuff Wiki
Revision as of 03:23, 25 December 2015 by Milk (talk | contribs) (→‎Plugins)
Jump to navigation Jump to search


to rearrange

Acoustics


  • The Effects of Large and Small Scale Turbulence on Sound Propagation in the Atmosphere

Stereo

Compensation

Cymatics

Non-Newtonian

Hardware

see sound on sound, etc.

Amp

Crossover

Speaker


Sound system

Headphones

Microphones

Soundcard

DAW

Controllers

MP3

MIDI

  • 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.
  • Linux pSeudo MIDI Input - These simple user-space drivers support using certain homemade, repurposed, or commercial devices as MIDI controllers on Linux, even though the devices themselves are not capable of generating MIDI messages; this does not include things like MIDI-over-serial or PIC based projects, which are true MIDI devices.




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

OSC

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

Firewire

MADI

Pedal

Synth



Wire

Studio

Formats

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.

Metadata

AAC

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

Ogg

Container format.

Vorbis

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.

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.

AMR

Vinyl

CD

Playlists

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.

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]

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]

  • Linuxaudio.org is a not-for-profit consortium of libre software projects and artists, companies, institutions, organizations, and hardware vendors using Linux kernel-based systems and allied libre software for audio-related work, with an emphasis on professional tools for the music, production, recording, and broadcast industries.

Commands

modinfo soundcore
lspci -v | grep -i audio
< /proc/asound/cards
aplay -L
lsmod | grep snd

Distros

KXStudio

  • KXStudio is a collection of applications and plugins for professional audio production. KXStudio provides Debian and Ubuntu compatible repositories and its own Linux Distribution currently based on Ubuntu 14.04.2 LTS.

Applications: We offer our own custom set of applications and utilities for Linux and Windows. This includes a fully-featured audio plugin host, a JACK patchbay and more.

Plugins: We provide a wide range of open-source audio plugins and Linux ports. We also provide custom patched plugins to work better and/or support more features.

Repositories: Debian and Ubuntu compatible repositories are available. Use them to get extra applications and updates, or to upgrade to the KXStudio distribution.

AVLinux

  • AV Linux is a free custom shop modded and rodded 32bit+PAE computer Operating System designed to turn a regular old (or fairly new) PC or Intel Mac into an Audio/Graphics/Video workstation appliance. An appliance..? Yes, imagine your Workstation computer being as reliable as that old Frigidaire in the garage! AV Linux features a complete customized Debian Linux XFCE4 4.10 Desktop Environment with the added bonus of a handpicked selection of pre-tested and pre-configured Audio, Graphics and Video content creation software demonstrating the excellence of Open-Source and also includes many unique Commercial Demos. GA veritable treasure chest of Linux and Cross-Platform favourites are pre-installed, Ardour, Audacity, Blender, Cinelerra, Handbrake, Hydrogen, Kdenlive, LinuxDSP (demos), LMMS, Mixbus (demo), Openshot, Renoise (demo) and VLC Media Player are just the tip of the iceberg. AV Linux is distributed as a free LiveDVD ISO image that can be downloaded, burned and run from a DVD-R(W) copied and run from a USB Key or installed to a computer's hard drive.

Ubuntu Studio

Arch Linux

  • ArchAudio - the Arch Linux Pro Audio community! From offering a third-party package repository to debating recording techniques to discussing FFT, we aim to be a central point for everything related to working with audio on Arch Linux.

Sound systems

OSS

Old.

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

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

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

ALSA

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

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

Configuration
  • 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
}


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.
  • pactl - Control a running PulseAudio sound server
  • pacmd - Reconfigure a PulseAudio sound server during runtime
pacmd list-cards

pacmd dump

JACK

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

old;

pasuspender -- jackd

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

jack2 dbus;

jack_control start
  starts the jack server
jack_control stop
  stops the jack server
jack_control ds alsa
  selects alsa as the driver (backend)
jack_control eps realtime True
  set engine parameters, such as realtime
jack_control dps period 256
  set the driver parameter period to 256
Integration
  • realtimeconfigquickscan - Linux configuration checker for systems to be used for real-time audio. Inspects a linux installation, and makes suggestions for improving realtime/audio performance.
Sessions
  • ladish is 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.
  • http://aj-snapshot.sourceforge.net/ Aj-snapshot is a small program that can be used to make snapshots of the connections made between JACK and/or ALSA clients. Because JACK can provide both audio and MIDI support to programs, aj-snapshot can store both types of connections for JACK. ALSA, on the other hand, only provides routing facilities for MIDI clients. You can also run aj-snapshot in daemon mode if you want to have your connections continually restored.
Control
  • Patchage is a modular patch bay for audio and MIDI systems based on Jack and Alsa.
  • 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.
  • 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.
  • Cadence is a set of tools useful for audio production. Cadence itself is also an application (the main one), which this page will document. There are other applications that are part of the Cadence suite, they are usually named as the "Cadence tools". They are: Catarina, Catia, Claudia
    • Cadence controls and monitors various Linux sound systems as well as audio-related system settings
cadence --minimized
  • 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.
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.
Processing
  • JAMin is the JACK Audio Connection Kit (JACK) Audio Mastering interface. JAMin is an open source application designed to perform professional audio mastering of stereo input streams. It uses LADSPA for digital signal processing (DSP)
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.


GStreamer

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.

Windows

  • ASIO4ALL - Universal ASIO Driver For WDM Audio

Tools

ALSA tools

  • 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


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


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


alsaconf
alsactl




JACK tools

  • ClockLoop- a very simple JACK application for playing back audio loops.
  • JACK bitmeter is a diagnosis tool for JACK audio software on Linux (and perhaps other systems which have JACK and GTK+ 2.x). As its name might suggest, the bitmeter operates at the bare metal of JACK's I/O layer, looking at the 32 binary digits in each individual sample.
  • JACK Meterbridge - software meterbridge for the UNIX based JACK audio system, supports a number of different types of meter, rendered using the SDL library and user-editable pixmaps.


MP3 tools

for f in *.wav ; do lame "$f" ; done
  • 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.
  • olaboola - cyber-shamanic noise-maker. oolaboola is a digital DJ tool. It allows you to mix .wav files in real-time modifying their rate of play, levels etc. Various facets of its behavior can be controlled via an rc file, environment variables, and command-line options. Settings provided by more than one of those override each other in that same order.

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

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

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

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.

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.

Audiocogs

Metronome

  • GTick is a 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).
  • ctronome - a very simple yet powerful ;) programmable console metronome software.

MIDI

Software

aplaymidi -l
  # get list of MIDI ports

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


  • mididings is a MIDI router and processor based on Python, supporting ALSA and JACK MIDI. It is available under the GNU GPL and currently runs on Linux.


  • 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.
  • Zweeger is a modular extended MIDI filter and generator. It works as a standalone tool or as a VST effect. It can be placed between any MIDI input, such as keyboards, and any tool that can be controlled by MIDI messages (effects, samplers, hardware, software...) It can also work without any input as a "simple" generator. Zweeger is composed of various elements, such as LFO, envelops, random curves, delays, note generators, ... All of them can be chained in various ways, synchronized on the tempo.


  • QmidiCtl - A MIDI Remote Controller via UDP/IP Multicast


  • Piz MIDI plugin collection - These are intended to be small, useful MIDI processing VST 2.4 plugins, and are available for Windows (32/64-bit), Linux (x86), and Mac OS X (PPC/x86, 32/64-bit), unless otherwise noted.
  • 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).


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

Players

See also Video#Players

mpg123

mplayer


MPD

  • beets catalogs your collection, automatically improving its metadata as it goes using the MusicBrainz database. Then it provides a bouquet of tools for manipulating and accessing your music. Because beets is designed as a library, it can do almost anything you can imagine for your music collection. Via plugins, beets becomes a panacea: Fetch or calculate all the metadata you could possibly need: album art, lyrics, genres, tempos, ReplayGain levels, or acoustic fingerprints. Get metadata from MusicBrainz, Discogs, or Beatport. Or guess metadata using songs’ filenames or their acoustic fingerprints. Transcode audio to any format you like. Check your library for duplicate tracks and albums or for albums that are missing tracks. Browse your music library graphically through a Web browser and play it in any browser that supports HTML5 Audio and lots more.

ncmpcpp

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

Larger GUI





Other

  • MOC - music on console. console audio player for Linux/UNIX.
  • cmus is a small, fast and powerful console music player for Unix-like operating systems.


  • XMMS2 will: play your music. manage your music library. use collections to help you organise your music as you like. allow you to control it using a variety of clients. run on Linux, *BSD, OS X, Solaris, and Windows.
  • Pragha is a Lightweight Music Player for GNU/Linux, based on Gtk and sqlite. It is completely written in C, constructed to be fast, light, and simultaneously tries to be complete without obstructing the daily work.


  • l-audio is a webbased player which takes advantage of the HTML5 audio element to play its music. Its aim is to provide a better interface than its competitor Ampache.
  • Playlistful - Collaborative playlists for parties! Do you want your party guests to be able to listen to music they like? But you don't want them skipping each other's songs and squabbling about who gets to choose the next one? Playlistful lets each of your guests have their own playlist on their mobile device, and then the computer connected to the sound system fairly picks between guests' songs. [18] - youtube


  • Pogo plays your music. Nothing else. It is both fast and easy-to-use. The clear interface uses the screen real-estate very efficiently. Other features include: Fast search on the harddrive and in the playlist, smart album grouping, cover display, desktop notifications and no music library. Pogo is a fork of Decibel Audio Player and supports most common audio formats. It is written in Python and uses GTK+ and gstreamer.




Streaming

Podcasting

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.

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.

Other

  • pyDub - Manipulate audio with an simple and easy high level interface [20]
  • 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.
  • 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!

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 is a minimal loop based midi sequencer.

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

sequencer64

Jackbeat

  • Jackbeat - an audio sequencer, a Linux tool for musicians and sound artists : drummachine-like 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

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

Software

  • OpenMPT (short hand for Open ModPlug Tracker), a popular tracker software for Windows.
  • 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.
  • Buzztrax 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.
  • 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.
  • SunVox is 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.
  • CheeseTracker is 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.

DAW

Digital Audio Workstation

REAPER

Ardour

LMMS

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

Rosegarden

MusE

  • MusE is a MIDI/Audio sequencer with recording and editing capabilities written originally by Werner Schweer now developed and maintained by the MusE development team. MusE aims to be a complete multitrack virtual studio for Linux, it is published under the GNU General Public License.

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.

Qtractor

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

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.

Traverso DAW

  • Traverso DAW is an audio recording and editing program which is very well suited to record a single voice, a band, an ensemble, a whole orchestra or any other source of music!

Radium

Bitwig

Frinika

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

musikernel

Audiotool

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

Synthesis


PC Speaker

beep - beep the pc speaker any number of ways
beep -f 200 -f 300
  # beep at 300Hz.
  • 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


Buzz

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

gAlan

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

DIN Is Noise

  • DIN (DIN Is Noise) is 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.

FluidSynth

  • Qsynth Qt GUI Interface for FluidSynth


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.

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

WONDER

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


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.
  • http://yoshimi.sourceforge.net/

horgand

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

AUBE

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

PHASEX

  • PHASEX is 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 amplif…

Helm

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

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.

Bfxr

  • http://www.bfxr.net/ Bfxr is 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 is 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. [23]

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.

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.

SunVox

  • SunVox is 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, OS X, Linux, Maemo, Meego, Raspberry Pi, Windows Mobile (WindowsCE), PalmOS, iOS and Android.

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

vModSynth

PHASEX

  • PHASEX ([P]hase [H]armonic [A]dvanced [S]ynthesis [EX]periment) is 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.

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.

synthv1

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

Audio programming

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


MUSIC-N

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

OpenMusic

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


SuperCollider

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

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.

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.

Max

ChucK

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

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.

CLAM

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

v.001

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

JUCE

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

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.


Live coding


  • 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 - 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.
  • http://www.ixi-audio.net/ixilang/ 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 is a language for live coding pattern. It provides a way to express music with very flexible timing, providing a little language for describing patterns as discrete 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. Tidal does not make sound itself, but rather controls synths using Open Sound Control or MIDI. By default, for its sister the Dirt sampler.
  • Gibber - Creative Coding for JavaScript
  • 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 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.


  • Gibber is a creative coding environment for audiovisual performance and composition. It contains features for audio synthesis and musical sequencing, 2d drawing, 3d scene construction and manipulation, and live-coding shaders.


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

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.

Sampler

Generative

  • DarwinTunes as a test-bed for the evolution of music, the oldest and most widespread form of culture; and, thanks to your participation, we've shown that reasonably complex and pleasing music can evolve purely under selection by listeners.
  • SoundHelix is 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.
  • Computoser is an "artificial intelligence" algorithm that turns the computer into a music composer.

Each track you hear is algorithmically generated.

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






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

Plugins


  • Tweakbench - free VST instruments and free VST effects


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

Hosts

  • Jost 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.
  • Ingen (formerly Om) is a modular audio processing system for GNU/Linux audio systems using the Jack audio server and LV2 or LADSPA plugins.
  • Carla is an audio plugin host, with support for many audio drivers and plugin formats. It has some nice features like automation of parameters via MIDI CC (and send output back as MIDI too) and full OSC control. Carla currently supports LADSPA (including LRDF), DSSI, LV2, VST2/3 and AU plugin formats, plus GIG, SF2 and SFZ file support. It uses JACK as the default and preferred audio driver but also supports native drivers like ALSA, DirectSound or CoreAudio.
  • 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.
  • 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.
  • zynjacku is 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.
  • Calf studio gear! Focused on high-quality sound processing and a highly usable interface Calf studio gear is designed to give you a professional production environment for your open source operating system. 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!
  • FeSTige is a GUI for fst and dssi-vst, allowing you to run Windows VST plugins on Linux.
  • fsthost - FreeST standalone fork. linux VST host - hybrid using winelib. Runs as a Jack client for Audio/MIDI, and with GTK GUI. Supports 32 and 64 bit plugins.
  • 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.

Repos

VST


  • Linux VSTs - a list of all the known native Linux VST plugins, for native VST hosts (energyXT, Jost, Renoise, Qtractor).


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


  • VSTForx is 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.
  • http://www.mucoder.net/en/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
  • http://www.mucoder.net/en/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


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


VSTi

LADSPA

LV2

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.

  • Suil is a lightweight C library for loading and wrapping LV2 plugin UIs.


DSSI

Impulse response


MIDI

  • a2jmidid is daemon for exposing legacy ALSA sequencer applications in JACK MIDI system.
  • 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.
  • 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.
  • Zweeger is a modular extended MIDI filter and generator. It works as a standalone tool or as a VST effect. It can be placed between any MIDI input, such as keyboards, and any tool that can be controlled by MIDI messages (effects, samplers, hardware, software...) It can also work without any input as a "simple" generator. Zweeger is composed of various elements, such as LFO, envelops, random curves, delays, note generators, ... All of them can be chained in various ways, synchronized on the tempo.
  • Aria Maestosa is 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.


  • 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.
  • 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.
  • arpage - MIDI Arpeggiator w/ JACK Tempo Sync. Alpha status. Source tarball for alpha 0.3.3 release, and SVN access are available.
  • hypercyclic is 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
  • harmonySEQ is a live loop-based MIDI software sequencer intended to aid music composers and performers.

Soundfonts

STK instruments

Looping

  • 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.
  • Luppp is 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!
  • kluppe is 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.
  • Freewheeling is a new way to be In The Muse-ical Moment. It's a live looping instrument that returns us to the joy of making music spontaneously.
  • Giada is 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.
  • LoopDub - a cross-platform audio application for live loop manipulation.
  • 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.
  • 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).
  • Tranches is 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.

Sounds and samples

few of my favourite

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


Stems

Historical

DJing

  • DJPlay - aims to be a high class live DJing application for Linux. old.

Radio

  • Internet DJ Console is a project started in March 2005 to provide a powerful yet easy to use source-client for individuals interested in streaming live radio shows over the Internet using Shoutcast or Icecast servers. Because of the large number of streaming applications that already existed but did little more than stream a pair of audio channels or a fixed playlist, it was decided that IDJC would be the opposite and simulate audio hardware to cut down the expense of creating a home studio.
  • Rivendell - a complete radio broadcast automation solution, with facilities for the acquisition, management, scheduling and playout of audio content. It has all of the features one would expect in a modern, fully-fledged radio automation system, including support for both PCM and MPEG audio encoding, full voicetracking and log customization as well as support for a wide variety of third party software and hardware. As a robust, functionally complete digital audio system for broadcast radio applications, Rivendell uses industry standard components like the GNU/Linux Operating System, the AudioScience HPI Driver Architecture and the MySQL Database Engine. Rivendell is available under the GNU Public License.

YouTube

Vinyl

  • xwax is an open-source Digital Vinyl System (DVS) for Linux. It allows DJs and turntablists to playback digital audio files (MP3, Ogg Vorbis, FLAC, AAC and more), controlled using a normal pair of turntables via timecoded vinyls. It's designed for both beat mixing and scratch mixing. Needle drops, pitch changes, scratching, spinbacks and rewinds are all supported, and feel just like the audio is pressed onto the vinyl itself. The focus is on an accurate vinyl feel which is efficient, stable and fast.
  • Digital-Scratch is a software that analyzes motions (rotation speed and direction) of a vinyl disc played by a turntable. It also provides a nice and simple player that play your favorite tracks allowing you to mix as you would do it with regular records.
  • terminatorX - realtime audio synthesizer, allows “scratching” on digitally sampled audio data (*.wav, *.au, *.ogg, *.mp3, etc.) the way hiphop-DJs scratch on vinyl records. It features multiple turntables, realtime effects (buit-in as well as LADSPA plugin effects), a sequencer and MIDI interface – all accessible through an easy-to-use gtk+ GUI.

Mobile

Web

See also WebDev#Web Audio API, Drumming#Web

Background

Jamming

Streaming

See also Music#Streaming

  • BS1770GAIN is a loudness scanner compliant with ITU-R BS.1770 and its flavors EBU R128, ATSC A/85, and ReplayGain 2.0. It helps normalizing the loudness of audio and video files to the same level.
  • Airtime - show scheduling, easy to use and makes the complicated lives of online broadcasters a little simpler.

Shoutcast

Icecast

DarkIce

Liquidsoap

  • http://liquidsoap.fm/ Liquidsoap is a powerful and flexible language for describing your streams. It offers a rich collection of operators that you can combine at will, giving you more power than you need for creating or transforming streams. But liquidsoap is still very light and easy to use, in the Unix tradition of simple strong components working together. A swiss-army knife for multimedia streaming, notably used for netradios and webtvs. It has tons of features, it's free and it's open-source!

Subsonic

Other


  • Shairport Sync is an AirPlay audio player -- it plays audio streamed from iTunes, iOS devices and third-party AirPlay sources such as ForkedDaapd and others. Audio played by a Shairport Sync-powered device stays synchronised with the source and hence with similar devices playing the same source. In this way, synchronised multi-room audio is possible without difficulty. (Hence the name Shairport Sync, BTW.)

Services

Tuning

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.

Speech

Recognition

  • Pi-Voice - The beginnings of a Star Trek-like computer. Run the program, speak into your microphone and hear the response from your speakers.

Synth

Other

Binaural beats

Logging

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

News