Difference between revisions of "Audio"

From Things and Stuff Wiki
Jump to navigation Jump to search
 
Line 1: Line 1:
 
{{menu}}
 
{{menu}}
  
to finish rearranging.
+
== General ==
 
 
 
Mostly Linux, mostly free software.
 
Mostly Linux, mostly free software.
  
quicklink: [[Pure Data]], [[Audio setup]], [[Soundbox]]
+
See also [[Effects]], [[Creative coding]], [[Playback]], [[Dataflow]], [[Pure Data]], [[Distros#Media]], [[Acoustics]]
  
== General ==
 
* http://stuff.mihozu.net/stuff/bookmarks/
 
  
* http://en.wikiaudio.org/Categories
+
* https://librazik.tuxfamily.org/doc2/logiciels - francophone
  
=== Acoustics ===
 
mess
 
  
 +
* https://github.com/ad-si/awesome-music-production
  
* 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://github.com/Yuan-ManX/Audio-Development-Tools#tts - a list of sound, audio and music development tools which contains machine learning, audio generation, audio signal processing, sound synthesis, game audio, digital audio workstation, spatial audio, music information retrieval, music generation, speech recognition, speech synthesis, singing voice synthesis and more.
  
* 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.
 
  
 +
* http://stuff.mihozu.net/stuff/bookmarks - old but interesting
  
* [http://waitbutwhy.com/2016/03/sound.html Everything You Should Know About Sound]
 
  
  
* 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.
+
* [http://cdm.link/ CDM] - blog, etc. on Create Digital music, motion, and more.
  
* 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/Sound_pressure_level - '''dB SPL'''
+
“Sound is when you mow your lawn, noise is when your neighbor mows their lawn, and music is when your neighbor mows your lawn,” [https://www.theatlantic.com/magazine/archive/2019/11/the-end-of-silence/598366/]
  
* 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.
 
  
 +
=== Training ===
 +
See [[Music#Training]]
  
  
* 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://www.gnu.org/software/solfege/
  
* 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.
+
* http://harmanhowtolisten.blogspot.co.uk/ [https://news.ycombinator.com/item?id=13045557]
  
* 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://www.soundgym.co
  
  
* 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.
+
* [https://ccrma.stanford.edu/realsimple RealSimple Project] - musical acoustics laboratory exercises integrating both hands-on laboratory experience and computer-based simulation.
  
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.
+
=== Electrical ===
 +
See also [[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.
  
* https://en.wikipedia.org/wiki/Loudness
+
* https://en.wikipedia.org/wiki/Line_level
  
  
 +
* https://en.wikipedia.org/wiki/Audio_power - the electrical power transferred from an audio amplifier to a loudspeaker, measured in watts. The electrical power delivered to the loudspeaker, together with its efficiency, determines the sound power generated (with the rest of the electrical power being converted to heat). Amplifiers are limited in the electrical energy they can output, while loudspeakers are limited in the electrical energy they can convert to sound energy without being damaged or distorting the audio signal. These limits, or power ratings, are important to consumers finding compatible products and comparing competitors.
  
* 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/Audio_system_measurements
  
 +
=== Digital ===
 +
* https://en.wikipedia.org/wiki/Digital_audio
  
* https://en.wikipedia.org/wiki/Dynamic_range
 
  
* https://en.wikipedia.org/wiki/Equal-loudness_contour
+
* [http://stephan.win31.de/aada.htm Advanced Aspects of Digital Audio] - Collected for the inquisitive audio enthusiast
  
  
* 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/Nyquist–Shannon_sampling_theorem
  
* 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.  
+
* https://github.com/MTG/conferences - This repository hosts a list of upcoming and past conference calls and journal calls for the wider music technology community.
  
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.
 
  
 +
* http://wiki.hydrogenaud.io/index.php?title=Topic_Index - software wiki with format etc information
  
  
* https://en.wikipedia.org/wiki/Absolute_threshold_of_hearing
+
* https://en.wikipedia.org/wiki/I²S - '''Inter-IC Sound''', eye-squared-ess, is an electrical serial bus interface standard used for connecting digital audio devices together. It is used to communicate PCM audio data between integrated circuits in an electronic device. The I²S bus separates clock and serial data signals, resulting in simpler receivers than those required for asynchronous communications systems that need to recover the clock from the data stream. Alternatively I²S is spelled I2S (pronounced eye-two-ess) or IIS (pronounced eye-eye-ess). Despite the similar name, I²S is unrelated to the bidirectional I²C (IIC) bus.
  
  
* 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.
+
* Maxim: [https://www.maximintegrated.com/en/app-notes/index.mvp/id/5446 Direct-Sampling DACs in Theory and Application - Application Note]
  
  
 +
* [http://src.infinitewave.ca/ SRC Comparisons] - "We have organized the testing of some of the objective parameters of SRC algorithms in the 96 kHz - 44.1 kHz conversion mode. This mode is considered "hard" because of its fractional resampling ratio. The set of test signals has been discussed among engineers from Weiss Engineering, Alexey Lukin and members of Glenn Meadows' Mastering Web-Board. The test files were available in a variety of resolutions (32-bit int, 32-bit float, 24-bit), and the best supported resolution has been used for each of the SRC algorithms tested. The resulting graphs have been drawn by a modified version of the RightMark Audio Analyzer (RMAA) and some specially developed analysis software."
  
* 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/Pitch_(music)
 
  
* https://en.wikipedia.org/wiki/Timbre
+
* https://github.com/NiallMoody/Audio-Programming-Resources - A collection of (mostly games-focused, audio programming resources I've developed.
  
  
* http://www.symbolicsound.com/cgi-bin/bin/view/Learn/BPM-Milliseconds-HertzChart
 
  
 +
* [https://www.admiralbumblebee.com/music/2018/02/16/Fixing-Phase-what-why-and-how.html#what-is-phase-delay Fixing Phase... What, Why, When and How]
  
 +
* Sound on Sound: [https://www.soundonsound.com/techniques/phase-demystified Phase Demystified] - Phase interactions are well known for their ability to destructively interfere with recorded signals, but an understanding of the process can turn it into one of the most powerful creative tools available to you.
  
* https://en.wikipedia.org/wiki/Ernst Chladni
 
  
* https://en.wikipedia.org/wiki/Cymatics - the study of visible sound and vibration
 
* https://en.wikipedia.org/wiki/Normal_mode
 
  
  
 +
* PDF: [https://www.mp3-tech.org/programmer/docs/resampler.pdf The Quest For The Perfect Resampler] - 2003.06.23, Laurent de Soras
 +
** Web: http://ldesoras.free.fr
  
* 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.
 
  
  
 +
* https://github.com/Stenzel/newpathdown
  
 +
* https://github.com/swesterfeld/pandaresampler - Fast factor 2 resampler for audio signals
  
* https://en.wikipedia.org/wiki/Beat_(acoustics) - an interference pattern between two sounds of slightly different frequencies, perceived as a periodic variation in volume whose rate is the difference of the two frequencies.
+
== Hardware ==
 +
* http://www.richardfarrar.com/are-your-speakers-wired-correctly/
  
 +
* http://blip.tv/ruinwesen/ruin-wesen-minicommand-pattern-euclid-3186495
 +
* http://www.rebeltech.org/modules/stoicheia/
 +
* http://cycling74.com/
  
Performing Musician Magazine:
+
* http://www.electrobob.com/auto-amp/
* [http://www.performing-musician.com/pm/apr09/articles/technotes.htm Acoustics and sound propagation: Part 1] - Sound fields, Critical distance
 
* [http://www.performing-musician.com/pm/jun09/articles/technotes.htm Acoustics and sound propagation: Part 2] - Diffraction
 
* [http://www.performing-musician.com/pm/jun09/articles/technotes.htm Acoustics and sound propagation: Part 3] - Sabines, Diffusion, Refraction, Typical absorption in Sabines per square foot
 
* [http://www.performing-musician.com/pm/jul09/articles/technotes.htm Acoustics and sound propagation: Part 4] - Refraction, Standing waves, Critical Distance
 
  
* [http://www.dtic.mil/dtic/tr/fulltext/u2/a293657.pdf The Effects of Large and Small Scale Turbulence on Sound Propagation in the Atmosphere]
+
see sound on sound, etc.
  
* [http://www.acs.psu.edu/drussell/demos.html Acoustics and Vibration Animations] [https://news.ycombinator.com/item?id=8474484]
+
* https://www.reddit.com/r/diysound
  
* [https://www.youtube.com/watch?v=odJxJRAxdFU Three-Dimensional Mid-Air Acoustic Manipulation [Acoustic Levitation] (2014-)]
+
* https://www.reddit.com/r/diyaudio
  
* [http://www.prosoundweb.com/article/print/a_ghost_story_low_frequency_illusions_created_by_standing_waves Ghost Story: Low Frequency Illusions Created By Standing Waves?] [https://news.ycombinator.com/item?id=8572199]
+
* http://www.diyaudio.com/index.php
  
* [http://www.npr.org/sections/therecord/2015/06/02/411473508/how-well-can-you-hear-audio-quality How Well Can You Hear Audio Quality?]
 
  
* http://blends.debian.org/multimedia/tasks/ambisonics
+
* [http://schematic.danrudin.com/ Schematic Vault] - This collection of pro audio schematics and reference materials has been amassed both from my private stock and from various internet resources. All materials have been formatted as multi-page pdf files for ease of use. Please feel free to email me (address on home page) with any material you'd care to add.
  
=== Training ===
 
* https://www.gnu.org/software/solfege/
 
  
* http://harmanhowtolisten.blogspot.co.uk/ [https://news.ycombinator.com/item?id=13045557]
+
=== Studio ===
 +
* http://www.bbc.co.uk/rd/pubs/archive/pdffiles/architectural-acoustics/bbc_guideacousticpractice.pdf
  
* https://www.soundgym.co
 
  
 +
=== Wiring ===
  
* [https://ccrma.stanford.edu/realsimple RealSimple Project] - musical acoustics laboratory exercises integrating both hands-on laboratory experience and computer-based simulation.
+
* https://en.wikipedia.org/wiki/Audio_and_video_interfaces_and_connectors#Audio_connectors
  
=== Cymatics ===
+
* https://en.wikipedia.org/wiki/Shielded_cable
* http://www.zdnet.com/blog/emergingtech/seeing-sound-5-remarkable-examples-of-cymatics-and-beyond/2126
 
  
* https://www.youtube.com/watch?v=rbMFISSlzK0&list=PLa12LFOBudR3cMRTg76BUw6OqfLbWs99l&index=1
 
  
* http://www.cymatics.co.uk/
+
* https://en.wikipedia.org/wiki/Unbalanced_circuit
  
* http://www.cymaticsource.com/
+
* https://en.wikipedia.org/wiki/Phone_connector_(audio) - also known as '''phone jack''', '''audio jack''', '''headphone jack''' or '''quarter inch jack plug''', is a family of electrical connectors typically used for analog audio signals. The phone connector was invented for use in telephone switchboards in the 19th century and is still widely used. The phone connector is cylindrical in shape, with a grooved tip to retain it. In its original audio configuration, it typically has two, three, four and, occasionally, five contacts. Three-contact versions are known as TRS connectors, where T stands for "tip", R stands for "ring" and S stands for "sleeve". Ring contacts are typically the same diameter as the sleeve, the long shank. Similarly, two-, four- and five- contact versions are called TS, TRRS and TRRRS connectors respectively. The outside diameter of the "sleeve" conductor is 1⁄4 inch (6.35 millimetres).
* http://cymatica.com/
 
* http://www.cymascope.com/
 
* http://cymaticamplifier.com/
 
  
* http://www.cymatrix.org/cymatrix1/home.html
+
The "mini" connector has a diameter of '''3.5 mm''' (0.14 in) and the "sub-mini" connector has a diameter of 2.5 mm (0.098 in).
* http://softwaretonoscope.com/
 
* http://www.phy.davidson.edu/StuHome/jimn/Java/modes.html
 
  
* http://cymatics.tribe.net/
 
  
=== Non-Newtonian ===
+
* https://en.wikipedia.org/wiki/RCA_connector
* https://en.wikipedia.org/wiki/Non-Newtonian_fluid
 
  
* YouTube: [https://www.youtube.com/watch?v=WaYvYysQvBU Collin's Lab: DIY Cymatics]
 
  
* YouTube: [https://www.youtube.com/watch?v=sWu9CyDwuFs Slow-Mo Non-Newtonian Fluid on a Speaker] - Veritasium
+
* https://en.wikipedia.org/wiki/Speaker_wire
  
* YouTube: [https://www.youtube.com/watch?v=SYMvOxIsES4 Cornstarch And Water On A Speaker (UV)]
+
* https://en.wikipedia.org/wiki/Binding_post
  
=== 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.
 
  
* https://en.wikipedia.org/wiki/Line_level
+
* YouTube: [https://www.youtube.com/watch?v=in516yspGxc&list=PLRVwmr0t9ZqOJ91CWn6NFN1CG704s3gzS Connecting your neutrik speakON Connector on wire] - MrFlexy SMPS
  
  
  
* https://en.wikipedia.org/wiki/Audio_system_measurements
+
* https://github.com/clacktronics/AudioJacks - KiCAD footprint library and 3D models for commonly used connectors used in synths and other audio equipment
  
=== Digital ===
 
* https://en.wikipedia.org/wiki/Digital_audio
 
  
  
* https://en.wikipedia.org/wiki/Nyquist–Shannon_sampling_theorem
+
* https://en.wikipedia.org/wiki/Balanced_audio - a method of interconnecting audio equipment using balanced lines. This type of connection is very important in sound recording and production because it allows the use of long cables while reducing susceptibility to external noise caused by electromagnetic interference.Balanced connections typically use shielded twisted-pair cable and three-conductor connectors. The connectors are usually 3-pin XLR or 1⁄4 inch (6.35 mm) TRS phone connectors. When used in this manner, each cable carries one channel, therefore stereo audio (for example) would require two of them.
  
  
* https://github.com/MTG/conferences - This repository hosts a list of upcoming and past conference calls and journal calls for the wider music technology community.
+
* https://en.wikipedia.org/wiki/XLR_connector - a style of electrical connector, primarily found on professional audio, video, and stage lighting equipment. The connectors are circular in design and have between 3 and 7 pins. They are most commonly associated with balanced audio interconnection, including AES3 digital audio, but are also used for lighting control, low-voltage power supplies, and other applications. XLR connectors are available from a number of manufacturers and are covered by an international standard for dimensions, IEC 61076-2-103.[1] They are superficially similar to the older and smaller DIN connector range, but are not physically compatible with them.
  
== Production ==
 
* https://en.wikipedia.org/wiki/Record_producer
 
  
 +
* https://en.wikipedia.org/wiki/Audio_multicore_cable
  
  
 +
* [http://web.archive.org/web/20110405092243/http://www.acoustic-dimension.com:80/furutech/furutech-PCOCC.htm furutech PCOCC process] - PCOCC Pure Copper by Ohno Continuous Casting
  
* https://en.wikipedia.org/wiki/Programming_(music) - a form of music production and performance using electronic devices, such as sequencers, to generate sounds of musical instruments.
+
* https://audiophilereview.com/cables/a-new-twist-on-copper.html
  
Synth programming, sequencer programming, etc.
+
=== Patch bay ===
  
 +
* https://en.wikipedia.org/wiki/Patch_panel
  
  
* http://www.simonv.com/tutorials/
+
* [https://www.misterpatchbay.com/patchbays/tutorial.html Patchbay Tutorial]
  
* http://www.trevorwishart.co.uk/transformation.html - sound art, spectral, electro-acoustic
 
  
 +
* [https://www.misterpatchbay.com/normaling/normal.html Patchbay Normaling]
  
* YouTube: [https://www.youtube.com/watch?v=JXfQsHT5c30 Extreme jazz fusion reharmonization] - Adam Neely
+
"Full-Normal : Each jack on the top-row is connected to the jack under it on the bottom-row. This allows the audio or video signal to “pass-through” the patchbay without using a patch cable. When we want to change the “normal” signal path we can use a patch cable to change the destination of the signal. Placing a patch cable into the either row breaks the signal path. The signal follows the patch cable to where it is patched.
  
 +
"Half-Normal: ...Placing a patch cable into the bottom-row breaks the signal path. Placing a patch cable into the top-row allows the signal to still go to the jack under it on the bottom-row (without breaking the normal) and also follows the patch cable."
  
* http://www.livepa.org/ - performance
 
  
 +
=== Microphones ===
 +
* https://en.wikipedia.org/wiki/Microphone - colloquially nicknamed '''mic''' or '''mike''' (/maɪk/), is a transducer that converts sound into an electrical signal.Microphones are used in many applications such as telephones, hearing aids, public address systems for concert halls and public events, motion picture production, live and recorded audio engineering, sound recording, two-way radios, megaphones, radio and television broadcasting, and in computers for recording voice, speech recognition, VoIP, and for non-acoustic purposes such as ultrasonic sensors or knock sensors.Several different types of microphone are in use, which employ different methods to convert the air pressure variations of a sound wave to an electrical signal. The most common are the dynamic microphone, which uses a coil of wire suspended in a magnetic field; the condenser microphone, which uses the vibrating diaphragm as a capacitor plate, and the piezoelectric microphone, which uses a crystal of piezoelectric material. Microphones typically need to be connected to a preamplifier before the signal can be recorded or reproduced.
  
  
* http://www.rubato.org/
+
* http://mysite.du.edu/~jcalvert/tech/microph.htm
  
 +
* http://blog.shure.com/10-things-might-not-know-sm58/
  
* http://www.soundonsound.com/techniques/classic-stereo-widening
 
  
 +
* https://en.wikipedia.org/wiki/Microphone_preamplifier
  
* http://www.rossbencina.com/code/sinusoids
 
  
* YouTube: [https://www.youtube.com/watch?v=Qc3uByeuSdg TOBI NEUMANN (EB.TV Tech Talk)]
+
* https://en.wikipedia.org/wiki/Microphone_practice
  
  
* [https://web.archive.org/web/20050309150900/http://www.dnbproduction.com:80/faq1.asp?message=0 DnBProduction.com: FAQ] - archived 2005
+
* [http://recordinghacks.com/articles/how-to-build-a-microphone/ How to build a microphone]
** [https://web.archive.org/web/20050309151205/http://www.dnbproduction.com:80/link.asp?message=0 DnBProduction.com: Links]
 
  
=== Communities ===
+
=== Preamplifier ===
 +
* https://en.wikipedia.org/wiki/Preamplifier
  
* http://llllllll.co/categories
+
=== Direct injection ===
  
* http://www.dogsonacid.com/forums/production.44/
+
* https://en.wikipedia.org/wiki/DI_unit - an electronic device typically used in recording studios and in sound reinforcement systems to connect a high-output impedance, line level, unbalanced output signal to a low-impedance, microphone level, balanced input, usually via an XLR connector and XLR cable. DIs are frequently used to connect an electric guitar or electric bass to a mixing console's microphone input jack. The DI performs level matching, balancing, and either active buffering or passive impedance matching/impedance bridging to minimize unwanted noise, distortion, and ground loops. DI units are typically metal boxes with input and output jacks and, for more expensive units, “ground lift” and attenuator switches. DI units are also referred to as a '''DI box''', '''direct box''', or simply '''DI''', with each letter pronounced, as in "Dee Eye." The term is variously claimed to stand for direct input, '''direct injection''', '''direct induction''' or '''direct interface'''.
  
* [http://www.idmforums.com/forumdisplay.php?s=3537b9851ceea2a6e43de10793395232&f=160 IDMf: The Studio Sub Forums]
+
* [https://www.radialeng.com/di-basics DI Basics - Radial Engineering]
  
* http://www.dancetech.com/forums/forum_index.cfm
+
=== Mixer ===
 +
* https://en.wikipedia.org/wiki/Mixing_console
  
  
* https://www.reddit.com/r/edmproduction/
+
* https://en.wikipedia.org/wiki/Insert_(effects_processing)
** [https://www.reddit.com/r/edmproduction/search?q=title%3Asound+author%3Aedmprobot&restrict_sr=on&sort=new&t=all "How do I make this sound?" Threads]
 
  
* https://www.reddit.com/r/AdvancedProduction/
 
  
* https://www.reddit.com/r/InTheStudio
 
  
* https://www.reddit.com/r/TechnoProduction/
+
* https://en.wikipedia.org/wiki/Panning_law - or '''panning rule''', is a recording and mixing principle that states that any signal of equal amplitude and phase that is played in both channels of a stereo system will increase in loudness up to 6.02 dBSPL, provided there is perfect response in the loudspeaker system and perfect acoustics in the room. Often, the acoustic summing of a room and system are inferior to the ideal, so the specific relative level will increase from −3 dB to 0 dB as the mono signal is panned from center to hard left or right. The idea of including a pan law is so that when one directs signals left or right with the pan pot, the perceived loudness will stay the same.
  
* https://www.reddit.com/r/edmcollabs/
+
* [https://www.admiralbumblebee.com/music/2019/12/08/Daw-V-Daw-Pan-Curves.html DAW v DAW - Part 6: Pan Laws and Pan Curves] - Pan Law
  
  
  
  
=== Amplitude ===
+
* [http://ricardo-dias.com/mpctools/ RD/MPCTools] - Extension Toolkit for Martin M-Series Software
* https://en.wikipedia.org/wiki/Audio_normalization
 
  
* https://en.wikipedia.org/wiki/Dynamic_range_compression
+
* https://github.com/SpotlightKid/xair-remote - Tools for querying and controlling Behringer X-AIR and MIDAS M-AIR audio mixers
  
* https://en.wikipedia.org/wiki/Limiter
 
  
=== Frequency ===
+
* [https://www.residentadvisor.net/features/3275 RA: The cult of rotary mixers] - [https://news.ycombinator.com/item?id=18968505]
* https://splice.com/blog/wp-content/uploads/2016/02/DdEFt.jpg
 
  
* http://imgur.com/a/Hz9Of
 
  
  
* http://www.balancemastering.com/finishingtracks/how-to-tutorial-significance-of-632Hz/
+
* https://github.com/omriharel/deej - an open-source hardware volume mixer for Windows and Linux PCs. It lets you use real-life sliders (like a DJ!, to seamlessly control the volumes of different apps (such as your music player, the game you're playing and your voice chat session) without having to stop what you're doing.
  
* http://www.balancemastering.com/finishingtracks/how-to-tutorial-significance-of-632Hz-part-2/
+
=== Amplifier ===
 +
* https://en.wikipedia.org/wiki/Amplifier
  
=== Drums ===
+
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.
* [http://www.alandmoore.com/blog/the-theory-of-drum-programming/ The Theory of Drum Programming]
+
 
 +
* https://en.wikipedia.org/wiki/Amplifier#Power_amplifier_classes
 +
 
 +
* 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.
  
  
* YouTube: [https://www.youtube.com/watch?v=wwhPI1DV3uo Let's Make Synth Drums in Linux!]
+
* https://en.wikipedia.org/wiki/Amplifier_figures_of_merit - numerical measures that characterize its properties and performance. Figures of merit can be given as a list of specifications that include properties such as gain, bandwidth, noise and linearity, among others listed in this article. Figures of merit are important for determining the suitability of a particular amplifier for an intended use.
  
* http://www.mediafire.com/file/gsybc0lle771ggi/Rene+Pierre+Bardet+-+260+Drum+Machine+Patterns.pdf.zip
 
  
* http://funklet.com/
+
* http://www.ebay.co.uk/gds/6-Different-Types-of-Car-Amplifiers-to-Consider-/10000000177631330/g.html
  
* https://docs.google.com/spreadsheets/d/19_3BxUMy3uy1Gb0V8Wc-TcG7q16Amfn6e8QVw4-HuD0/htmlview#gid=0
+
* http://www.head-fi.org/t/701900/schiit-happened-the-story-of-the-worlds-most-improbable-start-up
  
== Hardware ==
 
* http://www.richardfarrar.com/are-your-speakers-wired-correctly/
 
  
* http://blip.tv/ruinwesen/ruin-wesen-minicommand-pattern-euclid-3186495
+
* YouTube: [https://www.youtube.com/watch?v=lJFnlDTtsBA Is equipment burn in real?] - "all capacitors have to form, you put voltage on them and little microscopic holes are filled and it changes the equivalent series resistance and a number of other characteristics"
* http://www.rebeltech.org/modules/stoicheia/
 
* http://cycling74.com/
 
  
* http://www.electrobob.com/auto-amp/
 
  
see sound on sound, etc.
+
* https://en.wikipedia.org/wiki/Automatic_gain_control - a closed-loop feedback regulating circuit in an amplifier or chain of amplifiers, the purpose of which is to maintain a suitable signal amplitude at its output, despite variation of the signal amplitude at the input. The average or peak output signal level is used to dynamically adjust the gain of the amplifiers, enabling the circuit to work satisfactorily with a greater range of input signal levels. It is used in most radio receivers to equalize the average volume (loudness, of different radio stations due to differences in received signal strength, as well as variations in a single station's radio signal due to fading. Without AGC the sound emitted from an AM radio receiver would vary to an extreme extent from a weak to a strong signal; the AGC effectively reduces the volume if the signal is strong and raises it when it is weaker. In a typical receiver the AGC feedback control signal is usually taken from the detector stage and applied to control the gain of the IF or RF amplifier stages.
  
* https://www.reddit.com/r/diysound
 
  
* https://www.reddit.com/r/diyaudio
 
  
=== Studio ===
+
* https://joebennett.net/2014/10/13/guitarists-stop-hurting-the-audience-at-small-gigs/ - inc. cab placement
* http://www.bbc.co.uk/rd/pubs/archive/pdffiles/architectural-acoustics/bbc_guideacousticpractice.pdf
 
  
* https://en.wikipedia.org/wiki/Patch_panel
 
  
=== Mixer ===
+
* http://www.henryaudio.co.uk/
* https://en.wikipedia.org/wiki/Mixing_console
 
  
* https://en.wikipedia.org/wiki/Insert_(effects_processing)
 
  
=== Microphones ===
+
* http://schematicheaven.net/vox.html
* http://mysite.du.edu/~jcalvert/tech/microph.htm
 
  
* http://blog.shure.com/10-things-might-not-know-sm58/
+
* http://monster.partyhat.co/article/amplifier-tone-stacks/
  
=== Amplifier ===
+
* http://monster.partyhat.co/article/amplifier-diagram-libraries/
* https://en.wikipedia.org/wiki/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.
 
  
** https://en.wikipedia.org/wiki/Amplifier#Power_amplifier_classes
+
* [https://audioprimate.blog/2017/06/17/diy-a-roadmap-for-beginners/ DIY amps: a roadmap for beginners – Audio Primate] - [https://news.ycombinator.com/item?id=20255919]
  
* 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.
 
  
 +
* [http://nwavguy.blogspot.com/ NwAvGuy]
  
* http://www.ebay.co.uk/gds/6-Different-Types-of-Car-Amplifiers-to-Consider-/10000000177631330/g.html
+
* IEEE Spectrum: [https://spectrum.ieee.org/tech-history/silicon-revolution/nwavguy-the-audio-genius-who-vanished.amp.html NwAvGuy: The Audio Genius Who Vanished] - [https://news.ycombinator.com/item?id=7451062] [https://news.ycombinator.com/item?id=10961061]
  
* http://www.head-fi.org/t/701900/schiit-happened-the-story-of-the-worlds-most-improbable-start-up
+
=== Crossover ===
 +
* http://www.passivecrossovers.com/
  
 +
=== Speaker ===
 +
See [[Speaker]]
  
* https://joebennett.net/2014/10/13/guitarists-stop-hurting-the-audience-at-small-gigs/ - inc. cab placement
+
=== Headphones ===
 +
* https://en.wikipedia.org/wiki/Headphones
  
  
* http://www.henryaudio.co.uk/
+
* http://www.head-fi.org
  
  
* http://schematicheaven.net/vox.html
+
* [https://diyaudioheaven.wordpress.com/ DIY-Audio-Heaven] - Enjoy music through headphones on a low budget
  
* http://monster.partyhat.co/article/amplifier-tone-stacks/
 
  
* http://monster.partyhat.co/article/amplifier-diagram-libraries/
 
  
=== Crossover ===
+
* https://en.wikipedia.org/wiki/In-ear_monitor
* http://www.passivecrossovers.com/
 
  
=== Speaker ===
 
* https://en.wikipedia.org/wiki/Loudspeaker
 
  
* http://animagraffs.com/loudspeaker/
+
* https://github.com/Plutoberth/SonyHeadphonesClient - A {Windows, macOS, Linux} client recreating the functionality of the Sony Headphones app
  
  
* https://en.wikipedia.org/wiki/Speaker_driver - [electro]dynamic loudspeaker is most common variety
 
  
* https://en.wikipedia.org/wiki/Magnetostatic_loudspeaker
+
==== AutoEq ====
 +
* [https://autoeq.app/ AutoEq]
 +
** https://github.com/jaakkopasanen/AutoEq - a project for equalizing headphone frequency responses automatically and it achieves this by parsing frequency response measurements and producing equalization settings which correct the headphone to a neutral sound. This project currently has over 2500 headphones covered in the results folder. See Usage for instructions how to use the results with different equalizer softwares and Results section for details about parameters and how the results were obtained. [https://news.ycombinator.com/item?id=28799910]
  
* https://en.wikipedia.org/wiki/Electrostatic_loudspeaker
 
  
 +
==== Ploopy ====
 +
* [https://ploopy.co/headphones/# Headphones - Ploopy]
 +
** [https://media.ccc.de/v/sonoj2023-23205-ploopy_headphones media.ccc.de - Ploopy - Open Hardware Headphones] - Sonoj 2023
  
* https://en.wikipedia.org/wiki/Full-range_speaker
+
=== Calibration ===
  
* https://en.wikipedia.org/wiki/Subwoofer
 
  
* https://en.wikipedia.org/wiki/Woofer
+
* CDM: [https://cdm.link/2018/12/what-its-like-calibrating-headphones-and-monitors-with-sonarworks-tools/ What it's like calibrating headphones and monitors with Sonarworks tools]
  
* https://en.wikipedia.org/wiki/Mid-range_speaker
 
  
* https://en.wikipedia.org/wiki/Tweeter
+
* https://github.com/hamsternz/audio_distortion -  Measure the THD+Noise for your default audio device.
  
* https://en.wikipedia.org/wiki/Super_tweeter
+
=== Synthesizer ===
 +
See [[Synthesis]], [[Creative coding]]
  
 +
=== Vocoder ===
  
* https://en.wikipedia.org/wiki/Loudspeaker_enclosure
+
* [http://www.vocoder.eu/ Elektor 10 Channel Vocoder] - "I'm a synth & electronics passionate fan and live near Antwerp, Belgium. In the mid 1990's, really young and inexperienced, I decided to build the Elektor 10 channel vocoder as described in the Dutch Elektor magazine from the early 1980's."
  
* http://speakerplanarchive.com/
+
=== Drum machine ===
 +
See also [[Drum synth]], [[Drumming#Software 2]], [[Sound banks]]
  
* http://www.dancetech.com/index.cfm?loading=pa
+
* [https://audiojive.com/akai-mpc-3000/ AKAI MPC 3000: The Best Drum Machine of All Time - Audio Jive]
  
  
* https://en.wikipedia.org/wiki/Horn_loudspeaker
+
* [http://www.sonic-potions.com/lxr 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.
  
* YouTube: [https://www.youtube.com/watch?v=Mz5tIAcxJB8 The Synergy Horn, What makes it Unique?]
 
  
 +
* [https://hackaday.io/project/9350-exadrums eXaDrums] - Electronic drums for Linux. The goal project is to use a Raspberry Pi to make a drum module. As far as the software goes, it is written in C++ and uses Gtkmm to display a nice graphical user interface (GUI) on a Raspberry Pi official 7" touchscreen. The hardware consists of some accelerometers or piezos connected to an analog to digital converter (ADC).
  
* http://www.instructables.com/id/Folded-horn-passive-phone-speaker/?ALLSTEPS
 
  
 +
* [https://hackaday.io/project/164521-drumkid-aleatoric-drum-machine DrumKid] - an "aleatoric" drum machine, meaning it uses random numbers to determine the rhythm and sound of a drum beat. It comes in a handheld, battery-powered unit, designed for live performance. Check out the video here: https://www.youtube.com/watch?v=pyN_HQfCtoQ
  
* https://www.reddit.com/r/DesignAnEnclosure
 
  
=== Headphones ===
+
* [https://reverb.com/news/why-i-painstakingly-built-my-own-analog-drum-machine I built my own analog drum machine (2020)] - https://news.ycombinator.com/item?id=27365989
* https://en.wikipedia.org/wiki/Headphones
 
  
* http://www.head-fi.org/
 
  
* https://en.wikipedia.org/wiki/In-ear_monitor
+
* https://github.com/agraef/algodrum - an algorithmic drum machine based on Barlow's theory of meter and rhythm as explained in his book "On Musiquantics" (Section 22, "A Quantitative Approach to Metre"). It generates rhythmic patterns for any given meter in an automatic fashion, assigning a unique pulse strength to each pulse. Different notes can be played for different ranges of pulse strengths, and the pulses can be filtered according to their strengths.
  
 +
=== Sampler ===
  
=== Synth ===
+
* YouTube: [https://www.youtube.com/watch?v=ZrZ0lRs3R3c Laguna presents Mind over MIDI (clean Akai s3000xl with no extra FX nor post processing)]
See also [[#Synthesis]], [[#Audio programming]]
 
  
* https://www.reddit.com/r/synthesizers/
 
  
* http://cgs.synth.net/tube/
+
==== SamplerBox ====
 +
* [http://www.samplerbox.org/ SamplerBox] - an open-source DIY audio sampler project based on RaspberryPi.
 +
** https://github.com/josephernest/SamplerBox
  
* http://moogfoundation.org/schematics/ [https://news.ycombinator.com/item?id=9197420]
 
  
* http://www.earslap.com/projectslab/otomata
+
==== Akai s3000xl ====
 +
* YouTube: [https://www.youtube.com/watch?v=ZrZ0lRs3R3c Laguna presents Mind over MIDI (clean Akai s3000xl with no extra FX nor post processing)] - Akai s3000xl with no extra post-processing. The audio has been just normalized for maximum volume. Electronic beat was built using individual hits from the tiny Teenage Engineering PO12 rhythm box. Bassline is just the basic Akai default sinewave modulated with internal filter and amplitude envelopes. Speech comes from the tutorial "How To Get The Most Of Music X" featured in the (Commodore) Amiga Format magazine in the early nineties.Drum breaks belong to the timeless classic "The fuzz and da boog" by Fuzzy Haskins
  
* http://www.x0xclones.com/
+
==== Audio-Sampler-Selector ====
 +
* https://github.com/vongon/Audio-Sampler-Selector - An embedded Linux system that plays back audio samples for musical performance. This prototype is the first milestone of development for a multi-layered audio sample based musical instrument. The project incorporates embedded Linux development, analog circuit design, pcb layout, and lots of soldering/drilling/constructing.
 +
** YouTube: [https://www.youtube.com/watch?v=HCk0tZvfr2Q SelectorDemo]
  
* http://www.1010.co.uk/org/blackdeath.html
 
** https://github.com/microresearch/blackdeath
 
* http://www.1010.co.uk/org/yersinia.html
 
* http://www.1010.co.uk/org/darkint.html
 
  
* http://www.gaudi.ch/OpenTheremin/
+
==== pikocore ====
 +
* [https://infinitedigits.co/wares/pikocore/ pikocore] - a hackable, open-source, a lo-fi music mangler based on the Raspberry Pi Pico (brother of the nyblcore).
 +
** https://github.com/schollz/pikocore
  
* http://www.matrixsynth.com/
+
==== nyblcore ====
 +
* [https://infinitedigits.co/wares/nyblcore nyblcore] - a tiny ATtiny85-based lo-fi sample player device for diy enthusiasts.
 +
** https://github.com/schollz/nyblcore
  
 +
=== 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.
  
* http://articles.ircam.fr/textes/Boulez88c/
 
  
* http://ixox.fr/preenfm2/
+
* [http://www.cim.mcgill.ca/~clark/mxed.html MatrixEd Oberheim Matrix-1000 Patch Editor]
  
* http://zynthian.org/
 
** https://github.com/zynthian
 
  
 +
=== DAC / ADC ===
 +
* https://en.wikipedia.org/wiki/Digital-to-analog_converter#Audio
  
* http://synthesizers.com/
 
  
* https://news.ycombinator.com/item?id=10534122
+
* https://en.wikipedia.org/wiki/Analog-to-digital_converter
  
  
* [https://vimeo.com/97374616 I Dream Of Wires 2014 documentary Trailer - Official]
 
  
* http://www.synthtopia.com/
+
* https://github.com/hideakitai/MCP4728 - Arduino library for MCP4728 quad channel, 12-bit voltage output Digital-to-Analog Convertor with non-volatile memory and I2C compatible Serial Interface
  
* http://mutable-instruments.net/home/
 
  
* http://meeblip.com/
+
* https://github.com/skiselev/i2s_audio_phat - a Raspberry Pi Zero pHAT form-factor I2S audio interface board based on a Cirrus Logic (Wolfson) WM8731 audio codec. It provides line input, line output, headphones output, and includes an on-board microphone.
** https://github.com/MeeBlip
 
  
* http://factotumo.com/blipweb/ - web-midi for meeblip
 
** https://github.com/benschmaus/blipweb
 
  
  
* http://updn-lfo.de/modules.html
+
* https://github.com/onkelDead/tascam.lv2 - LV2 plugin to control Tascam US-16x08 interface via cutsom alsa driver
  
* https://code.google.com/archive/p/forbinlfo/
+
* https://github.com/onkelDead/tascam-gtk - GTK+ based application to control Tascam US-16x08 DSP mixer
  
  
* [http://sensorium.github.io/Mozzi/ 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.
+
* https://github.com/geoffreybennett/alsa-scarlett-gui - a Gtk4 GUI for the ALSA controls presented by the Linux kernel Focusrite Scarlett Gen 2/3 Mixer Driver.
** https://github.com/sensorium/Mozzi
 
  
  
* http://www.ladyada.net/make/x0xb0x/
+
* https://github.com/mattogodoy/h6 - allows you to control your Zoom H6 recorder from your computer using an USB to TTL adapter. For this, you will need a few components to make a specific cable, but it's quite simple.
** https://www.youtube.com/watch?v=rq39yd1OTTU
 
  
* https://ask.audio/articles/om-1-cassette-tape-synthesizer-is-a-gloriously-unique-analog-musical-instrument
+
=== Sound chip/card ===
  
 +
* https://en.wikipedia.org/wiki/Programmable_sound_generator
  
* https://www.critterandguitari.com/pages/organelle - The Organelle makes it easy to explore new sounds and experiment with new ways of making music. It combines playful and intuitive controls with a powerful and flexible sound engine. The result is an instrument that is limitless in musical possibility and a joy to play. At the heart of the Organelle's sound engine is a robust computer that runs patches. A patch allows the instrument to take on different forms. Onboard hardware for sound input and output and mappable knobs, keys and buttons enable patches to synthesize, sample, effect, and anything in between!
+
* https://en.wikipedia.org/wiki/Sound_chip
** http://patchstorage.com/explore/?search_query=&tax_platform%5B%5D=organelle&orderby=date&wpas_id=my-form&wpas_submit=1
 
  
  
* http://www.segmentsynth.com/
+
* https://en.wikipedia.org/wiki/List_of_Yamaha_products#Sound_chips
  
 +
* https://github.com/Skidlz/YM3427 - Info/Code for Yamaha's YM3427 IC
  
* https://github.com/le1ca/alesisvsysex - [https://linuxmusicians.com/viewtopic.php?f=4&t=18000] Alesis V-Series Editor
 
  
=== Control voltage / gate ===
+
* [http://little-scale.blogspot.co.uk/2018/01/oct-sn76489-midi-array.html Oct SN76489 MIDI Array]
* https://en.wikipedia.org/wiki/CV/Gate
 
  
* [https://objectivewave.wordpress.com/midimsg-lv2/ midimsg.lv2] is a set of plugins to transform midi output into usable values to control other plugins. For example: aftertouch transfers channel aftertouch to CV, controller and modwheel to CV
+
* https://github.com/rhargreaves/mega-drive-midi-interface - Control the Yamaha YM2612 and SN76489 chips of the SEGA Mega Drive via MIDI
** https://github.com/blablack/midimsg-lv2
 
  
  
* http://git.fuzzle.org/jm2cv.git - Jack Midi to Control Volage
+
* https://github.com/bitluni/ULPSoundESP32 - These sketch show how to use the Ultra Low Power coprocessor (U.L.P.) of the ESP32 in order to play music, and relieve main processor's core of this task. Only a lightweight task refill from time to time the ULP separate memory with instruction which contains samples. That could be usefull for videos games, where graphics can monopolize both 2 cores.
** https://github.com/harryhaaren/jm2cv
 
  
#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
 
  
  
* [https://linuxmusicians.com/viewtopic.php?t=7968 jm2cv guidelines] - Linux Musicians forum
+
* [https://electricdruid.net/analog-renaissance/ Analog Renaissance? The rebirth of the impossible chips – Electric Druid]
 +
* http://www.soundsemiconductor.com/downloads/ssi2130datasheet.pdf
  
=== Drum machine ===
 
  
  
* [http://www.sonic-potions.com/lxr 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.
+
* https://en.wikipedia.org/wiki/Sound_card
  
=== Sampler ===
 
* http://www.samplerbox.org/
 
  
=== 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.
 
  
 +
* https://github.com/Wohlstand/ail32-sandbox - A sandbox over AIL32. Build was ported for a modern environment with GNU Make and OpenWatcom. For details, please read the read.me.utf8.txt file - an official document for AIL32.
  
* [http://www.cim.mcgill.ca/~clark/mxed.html MatrixEd Oberheim Matrix-1000 Patch Editor]
 
  
=== Sound chip/card ===
 
* https://en.wikipedia.org/wiki/Digital-to-analog_converter
 
  
* https://en.wikipedia.org/wiki/Analog-to-digital_converter
+
* https://en.wikipedia.org/wiki/Environmental_Audio_Extensions
  
  
* https://en.wikipedia.org/wiki/Programmable_sound_generator
+
* 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.
  
* https://en.wikipedia.org/wiki/Sound_chip
 
  
 +
* https://en.wikipedia.org/wiki/Intel_High_Definition_Audio - or '''HD Audio''' or '''HDA''', is a specification for the audio sub-system of personal computers. It was released by Intel in 2004 as successor to their AC'97 PC audio standard. During development it had the codename "Azalia".
  
* https://en.wikipedia.org/wiki/List_of_Yamaha_products#Sound_chips
+
* http://www.intel.com/content/dam/www/public/us/en/documents/product-specifications/high-definition-audio-specification.pdf
  
 +
* https://www.kernel.org/doc/Documentation/sound/hd-audio/notes.rst
  
* [http://little-scale.blogspot.co.uk/2018/01/oct-sn76489-midi-array.html Oct SN76489 MIDI Array]
 
  
 +
* http://wiki.linuxaudio.org/wiki/list_of_jack_frame_period_settings_ideal_for_usb_interface
  
* https://en.wikipedia.org/wiki/Sound_card
 
  
  
* https://en.wikipedia.org/wiki/Environmental_Audio_Extensions
+
* http://bela.io/
 +
** https://media.ccc.de/v/minilac16-belaanopen
  
  
* 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.
+
* http://blokas.io/
  
* https://en.wikipedia.org/wiki/Intel_High_Definition_Audio - or '''HD Audio''' is a specification for the audio sub-system of personal computers. It was released by Intel in 2004 as successor to their AC'97 PC audio standard. During development it had the codename "Azalia".
+
==== ISA ====
 +
* http://www.flaterco.com/kb/audio/ISA
  
* https://www.kernel.org/doc/Documentation/sound/hd-audio/notes.rst
 
  
 +
* OS/2 Museum: [http://www.os2museum.com/wp/a-sound-card-before-its-time/ A Sound Card Before Its Time] - [https://news.ycombinator.com/item?id=17779741]
  
* http://wiki.linuxaudio.org/wiki/list_of_jack_frame_period_settings_ideal_for_usb_interface
 
  
 +
* https://en.wikipedia.org/wiki/Sound_Blaster
  
 +
* https://github.com/schlae/snark-barker - a 100% compatible clone of the famed SB 1.0 "Killer Card" sound card from 1989. It implements all the features, including the digital sound playback and recording, Ad Lib compatible synthesis, the joystick/MIDI port, and the CMS chips (which are actually Philips SAA1099 synthesizer devices). [https://news.ycombinator.com/item?id=19006336] [https://news.ycombinator.com/item?id=25029727]
  
* https://code.google.com/p/mudita24/
 
  
 +
* https://github.com/crazii/SBEMU - Sound blaster emulation with OPL3 for AC97. Supported Sound cards: Intel ICH / nForce, Intel High Definition Audio, VIA VT82C686, VT8233, SB Live/Audigy
  
* http://bela.io/
 
** https://media.ccc.de/v/minilac16-belaanopen
 
  
 +
* [https://www.vogons.org/viewtopic.php?t=74946 Tandy Nano - 3 Voice Soundcard ISA - Lowprofile \ VOGONS]
 +
** https://github.com/matze79/Tandy-Nano
  
* http://blokas.io/
+
==== PCI ====
 +
* http://www.flaterco.com/kb/audio/PCI/
  
=== Music workstaion ===
+
* http://www.jrigg.co.uk/linuxaudio/ice1712multi.html
* https://en.wikipedia.org/wiki/Music_workstation
 
  
 +
* envy24control - alsa-utils
  
 +
* https://code.google.com/p/mudita24
  
=== Digital Audio Workstation ===
+
* https://sourceforge.net/projects/kenvy24 - VIA Envy24 based sound cards control utility, for the KDE environment
* [http://www.prosoundweb.com/article/print/inside_the_development_we_now_know_as_digital_audio_workstations History Files: Inside The Development Of What We Know As Digital Audio Workstations]
 
  
 +
==== Wavetable ====
  
 +
* https://en.wikipedia.org/wiki/Wavetable_synthesis#Confusion_with_sample-based_synthesis_(S&S)_and_Digital_Wave_Synthesis - In 1992, with the introduction of the Creative Labs Sound Blaster 16 the term "wavetable" started to be (incorrectly) applied as a marketing term to their sound card. However, these sound cards did not employ any form of wavetable synthesis, but rather PCM samples and FM synthesis.
  
  
* https://www.roland.com/us/products/vs-1680/
+
* https://en.wikipedia.org/wiki/Creative_Wave_Blaster - was an add-on MIDI-synthesizer for Creative Sound Blaster 16 and Sound Blaster AWE32 family of PC soundcards. It was a sample-based synthesis General MIDI compliant synthesizer. For General MIDI scores, the Wave Blaster's wavetable-engine produced more realistic instrumental music than the SB16's onboard Yamaha-OPL3.
  
 +
* [http://members.home.nl/c.kersten/ WaveBlaster compatible MIDI daughterboards]
  
=== 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.
 
  
 +
* YouTube: [https://www.youtube.com/playlist?list=PL5T8bmLxd_T1F2g3aoYCu2brKtGTlbyY_ MIDI and Wavetable] - PhilsComputerLab playlist
  
* [http://www.ffado.org/ 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.
 
  
* https://en.wikipedia.org/wiki/FFADO
+
==== USB ====
  
* http://ffado.org/?q=devicesupport/list
+
* https://github.com/eltortugo/audioxtreamer - A simple multichannel USB/FPGA PCM audio interface:
  
 +
=== DSP ===
  
  
* https://www.youtube.com/watch?v=61kc3Rs_xNQ
 
  
=== MADI ===
+
* https://github.com/tanvach/prettygood_dsp - self contained, Arduino compatible board for applying audio DSP. The intended purpose is to equalize and apply bass boost to BMR VR off ear headphones, but can be adapted for any other light DSP tasks by SGTL5000 codec.
* 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).
 
  
  
* https://www.rme-audio.de/en/products/hdspe_madi_fx.php
+
* https://github.com/AidaDSP/AidaDSP - an audio shield for Arduino
  
=== USB ===
 
* http://www.androidauthority.com/3-5mm-audio-usb-type-c-701507/ [https://news.ycombinator.com/item?id=12085893]
 
  
=== Pedal ===
+
* https://github.com/ashafq/GuitarFx - An Arduino based SDK to Make Instrument Effects
==== Jesusonic ====
 
* [http://www.cockos.com/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.
 
  
* https://github.com/asb2m10/jsusfx - Opensource Jesusonic FX implementation
 
  
 +
* [https://electro-smith.com/ Electrosmith Daisy] - The go-to solution for your next DSP project. Build complex effects, massive loopers, and powerful sound sources on a single board.
  
* [http://www.reaper.fm/sdk/js/js.php JSFX Programming]
+
* https://github.com/bkshepherd/DaisySeedProjects - A collection of hardware and software projects based around the Electro-Smith Daisy Seed
  
 +
=== Computer ===
  
==== The OWL ====
+
* [https://blog.macieksypniewski.com/wp-content/uploads/2020/07/platforms7.htm platforms]
* [http://hoxtonowl.com 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.
 
** https://github.com/pingdynasty/OwlSim - Simulator for Open Ware Laboratory, a programmable audio effects pedal
 
  
==== to sort ====
 
* http://howleraudio.com/frontpage/
 
  
* http://axoloti.be/
+
* https://github.com/szymonkaliski/LoopPI2 - 6-track audio looper working on Raspberry PI 3, made with ChucK.
  
  
* https://github.com/fengalin/gstation-edit
 
  
=== Game controller ===
+
* [https://www.instructables.com/Raspberry-Pi-Music-Server-With-Built-in-Crossover-/ Raspberry Pi Music Server With Built-in Crossover and DSP : 12 Steps (with Pictures) - Instructables]
 +
** https://github.com/jrubinstein/raspiDSP - make a raspberry pi crossover and DSP and HDMI receiver
  
* https://github.com/grejppi/wmcv - wmcv is a Python module that lets you use the Wiimote controller as a CV controller with JACK.
 
  
=== Eye tracking ===
 
  
 +
* https://github.com/dagargo/overwitch - an Overbridge 2 device client for JACK (JACK Audio Connection Kit).This project is based on the Overbridge USB reverse engineering done by Stefan Rehm in dtdump.The papers Controlling adaptive resampling and Using a DLL to filter time by Fons Adriaensen have been very helpful and inspiring, as well as his own implementation done in the zita resamplers found in the alsa tools project.At the moment, it provides support for all Overbridge 2 devices, which are Analog Four MKII, Analog Rytm MKII, Digitakt, Digitone, Digitone Keys, Analog Heat and Analog Heat MKII.
  
* 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 ===
 
* https://github.com/szymonkaliski/LoopPI2 - 6-track audio looper working on Raspberry PI 3, made with ChucK.
 
  
=== Instrument ===
+
* [https://nschlia.github.io/ffmpegfs/html/index.html FFmpegfs Fuse Multi Media Filesystem: FFmpegfs FUSE Filesystem] - a read-only FUSE filesystem which transcodes various audio and video formats to MP4, WebM, and many more on the fly when opened and read using the FFmpeg library, thus supporting a multitude of input formats and a variety of common output formats. This allows access to a multi-media file collection with software and/or hardware which only understands one of the supported output formats, or transcodes files through simple drag-and-drop in a file browser.
* 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.
+
** https://github.com/nschlia/ffmpegfs
  
=== Wire ===
+
=== Music workstaion ===
* https://en.wikipedia.org/wiki/Wire_recording
+
* https://en.wikipedia.org/wiki/Music_workstation
  
* YouTube: [https://www.youtube.com/watch?v=xXhyw2BD9lQ Wire Recording]
 
  
 +
==== LMN-3 ====
 +
* [https://www.reddit.com/r/OP1users/comments/vbaj4x/my_opensource_synthsamplersequencerdawinabox_the/ My open-source synth/sampler/sequencer/DAW-in-a-box: The LMN-3 : OP1users]
 +
** https://github.com/FundamentalFrequency/LMN-3-Build-Guide
 +
** https://github.com/FundamentalFrequency/LMN-3-MCAD
 +
** https://github.com/FundamentalFrequency/LMN-3-ECAD
 +
** https://github.com/FundamentalFrequency/LMN-3-Keycaps - This repository contains the OpenSCAD files for the LMN-3 keycaps. It also contains printable icons that can be used for labeling physical keycaps. These keycap models are used in the LMN-3-MCAD FreeCAD assembly, and not the actual device itself.
 +
** https://github.com/FundamentalFrequency/LMN-3-DAW
  
=== Music roll ===
+
=== FireWire ===
* 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/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.
  
  
 +
* [http://www.ffado.org/ 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.
  
* 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.
+
* https://en.wikipedia.org/wiki/FFADO
  
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.
+
* http://ffado.org/?q=devicesupport/list
  
  
  
* http://www.terrysmythe.ca/Estey.htm
+
* https://www.youtube.com/watch?v=61kc3Rs_xNQ
  
* [https://midimusic.github.io/estey/index.html Estey Player Organ Music Rolls]
+
=== AES3 ===
 +
* https://en.wikipedia.org/wiki/AES3 - (also known as '''AES/EBU''') is a standard for the exchange of digital audio signals between professional audio devices. An AES3 signal can carry two channels of PCM audio over several transmission media including balanced lines, unbalanced lines, and optical fiber. AES3 was jointly developed by the Audio Engineering Society (AES) and the European Broadcasting Union (EBU). The standard was first published in 1985 and was revised in 1992 and 2003. AES3 has been incorporated into the International Electrotechnical Commission's standard IEC 60958, and is available in a consumer-grade variant known as S/PDIF.
  
* [https://midimusic.github.io/tech/index.html 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.
+
=== ADAT Lightpipe ===
 +
* https://en.wikipedia.org/wiki/ADAT_Lightpipe - officially the ADAT Optical Interface, is a standard for the transfer of digital audio between equipment. It was originally developed by Alesis but has since become widely accepted,[1] with many third party hardware manufacturers including Lightpipe interfaces on their equipment. The protocol has become so popular that the term "ADAT" is now often used to refer to the transfer standard rather than to the Alesis Digital Audio Tape itself.
  
=== MP3 ===
+
=== MADI ===
* See [[Hardware#MP3]]
+
* WP: 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).
  
=== PA system ===
 
* https://en.wikipedia.org/wiki/Public_address_system
 
  
 +
* [https://www.sonible.com/blog/many-madi-variants/ Why are there so many MADI Variants? Some answers...]
  
* https://en.wikipedia.org/wiki/Constant-voltage_speaker_system - 90v system
 
  
* YouTube: [https://www.youtube.com/watch?v=x8t9tMxoAWg Differences between 8-Ohm and 70-Volt Systems]
+
* [https://www.rme-audio.de/en/products/hdspe_madi_fx.php RME: HDSPe MADI FX] -
  
=== Sound system ===
+
=== USB ===
* http://www.reddit.com/r/SoundSystem/wiki/index
+
* http://www.androidauthority.com/3-5mm-audio-usb-type-c-701507/ [https://news.ycombinator.com/item?id=12085893]
  
* RA: [http://www.residentadvisor.net/feature.aspx?1588 The esoteric art of great sound]
 
  
* http://music.tutsplus.com/tutorials/how-to-calculate-a-delay-tower--audio-10471
+
* FOSDEM 2019: [https://fosdem.org/2019/schedule/event/linux_and_usb_audio_class_3/ Linux and USB Audio Class 3] - The USB Audio Class 3.0 is a specification recently introduced by USB Implementers Forum. Ruslan is an author of UAC3 implementation in Linux, he will give an overview of improvements and changes in this USB Audio spec, and will share current Linux support status and challenges faced during ALSA drivers implementation.
  
* https://play.google.com/store/apps/details?id=com.embu.avtools&hl=en
 
  
== Synthesis ==
 
to expand and resort
 
  
* https://en.wikipedia.org/wiki/Synthesizer
+
* https://wiki.linuxaudio.org/wiki/list_of_jack_frame_period_settings_ideal_for_usb_interface
  
See also [[#Sampler]]
+
* [http://jack-audio.10948.n7.nabble.com/Differences-in-latency-between-USB-and-internal-audio-interfaces-td9071.html Jackit - Differences in latency between USB and internal audio interfaces]
  
=== Learning ===
+
* https://aur.archlinux.org/packages/snd-usb-audio-lowlatency-dkms/
* [http://www.synthzone.com/ 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.
+
* [https://linuxmusicians.com/viewtopic.php?t=18870 low latency tweaks to snd-usb-audio - LinuxMusicians]
  
 +
=== Bluetooth ===
  
* [http://www.acoustics.salford.ac.uk/acoustics_info/sound_synthesis/ Principles of Sound Synthesis]
+
* [https://kn100.me/improving-bluetooth-audio-linux/ Improving Bluetooth Audio Quality on Ubuntu Linux] - [https://news.ycombinator.com/item?id=24763593]
  
* [http://hyperphysics.phy-astr.gsu.edu/hbase/audio/synth.html Sound Synthesis / Methods of Synthesis]
 
  
* [https://reverb.com/uk/news/how-do-synths-work How Do Synths Work? An Introduction to Audio Synthesis] by Lech Szczepaniak
+
* [https://gist.github.com/mill1000/74c7473ee3b4a5b13f6325e9994ff84c Headless A2DP Audio Streaming on Raspbian Stretch] - how to setup Raspbian Stretch as a headless Bluetooth A2DP audio sink. This will allow your phone, laptop or other Bluetooth device to play audio wirelessly through a Rasperry Pi.
  
* [http://beausievers.com/synth/synthbasics/ A Young Person's Guide to the Principles of Music Synthesis] by Beau Sievers
+
=== Pedal ===
 +
==== Jesusonic ====
 +
See also [[DAW#JSFX]]
  
* https://en.wikibooks.org/wiki/Sound_Synthesis_Theory
+
* [http://www.cockos.com/jesusonic Jesusonic] - A dynamic text mode live FX processor
  
  
* http://en.wikiaudio.org/Category:Synthesis
+
* 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.
  
* [http://www.sequencer.de/synth/index.php/Main_Page Synthesizer Wiki]
 
  
* http://electronicmusic.wikia.com/wiki/Main_Page
+
* https://github.com/asb2m10/jsusfx - Opensource Jesusonic FX implementation
** http://electronicmusic.wikia.com/wiki/Category:Waveforms
+
** [https://forum.pdpatchrepo.info/topic/9859/jsusfx-jesusonic-external-for-pure-data jsusfx~ : Jesusonic external for pure data | PURE DATA forum~] -
  
  
* YouTube: [https://www.youtube.com/playlist?list=PLa9Em_H8Xs_al-r_90xYiuiz-3N8HZyf_&app=desktop Modular Synth Basics - Synthesizer Tutorials]
 
  
 +
* [http://www.reaper.fm/sdk/js/js.php JSFX Programming]
  
* [http://synth.tk/ Synth.tk] - Sound Synthesis Education. Various article and video series. [https://news.ycombinator.com/item?id=10834685]
 
  
* [http://www.cim.mcgill.ca/~clark/nordmodularbook/nm_book_toc.html 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.
+
* [https://stash.reaper.fm/browse.php?q=tag:JS-Effects REAPER | Resources]
  
* [http://www.analogindustries.com/b1764/ Roland's four-book primer on synthesis, The Synthesizer]
+
* [https://geraintluff.github.io/jsfx/ Geraint's JSFX effects]
 +
** https://github.com/geraintluff/jsfx
  
* [http://synthesizeracademy.com/ 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.
 
  
 +
* https://github.com/JoepVanlier/JSFX - A bundle of JSFX and scripts for reaper.
  
* [http://synthesizer-cookbook.com/ Welsh's Synthesizer Cookbook] - Universal patch book, Sound analysis/reverse engineering, Synthesizer programming basics. $19.95 US on Amazon and eBay (follow "purchase" link on left). Includes the full Kitchen Kits sample pack.
 
** PDF: [http://synthesizer-cookbook.com/SynCookbook.pdf A sample of the book (1.45 Mb)]
 
  
  
* YouTube: [https://www.youtube.com/channel/UCRYv1Y9SQaI3dp57syZUdIw once upon a synth] - channel
+
* https://github.com/jpcima/ysfx
  
=== Elements ===
+
==== The OWL ====
* [http://www.cim.mcgill.ca/~clark/nordmodularbook/nm_book_toc.html Advanced Programming Techniques for Modular Synthesizers ]
+
* [http://hoxtonowl.com 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.
** [http://www.speech.kth.se/prod/publications/files/3822.pdf PDF]
+
** https://github.com/pingdynasty/OwlSim - Simulator for Open Ware Laboratory, a programmable audio effects pedal
  
 +
==== to sort ====
 +
* http://howleraudio.com/frontpage
  
* https://en.wikipedia.org/wiki/Oscillation - the repetitive variation, typically in time, of some measure about a central value (often a point of equilibrium) or between two or more different states.
 
  
* https://en.wikipedia.org/wiki/Electronic_oscillator
+
* http://axoloti.be
  
* https://en.wikipedia.org/wiki/Voltage-controlled_oscillator - VCO
 
  
* https://en.wikipedia.org/wiki/Voltage-controlled_filter - VCF - shapes the sound generated by the oscillators in the frequency domain, often under the control of an envelope or LFO. These are essential to subtractive synthesis.
+
* https://github.com/fengalin/gstation-edit
  
* https://en.wikipedia.org/wiki/Voltage-controlled_amplifier - VCA
 
  
 +
* https://github.com/EleonoreMizo/pedalevite - a DIY multi-FX pedalboard for guitar, bass or any other electric instrument.It is based on a Raspberry Pi 4 and uses a custom audio board.
  
* https://en.wikipedia.org/wiki/Envelope_generator
 
  
* https://en.wikipedia.org/wiki/Synthesizer#Attack_Decay_Sustain_Release_.28ADSR.29_envelope
 
  
  
* 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://github.com/moddevices/mod-controller-proto/blob/master/mod-protocol.h
  
* https://en.wikipedia.org/wiki/Modulation
+
=== Controller ===
 +
See also [[MIDI#Controllers]]
  
* https://en.wikipedia.org/wiki/Phase_modulation
 
  
* https://en.wikipedia.org/wiki/Ring_modulation
+
* https://github.com/brendan-byrne/Modi - Modular Controller System
  
* https://en.wikipedia.org/wiki/Self-oscillation
 
  
* YouTube: [https://www.youtube.com/watch?v=dVgIf71uWB4 The Filter- Minimoog Filter Self-Oscillation]
+
* https://github.com/16n-faderbank/16n - Sixteen faders, a Teensy, MIDI over USB and jack, CV out, and I2C out.
  
 +
=== Game controller ===
  
* 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://github.com/grejppi/wmcv - wmcv is a Python module that lets you use the Wiimote controller as a CV controller with JACK.
  
 +
=== Eye tracking ===
  
* 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.
 
  
 +
* 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.
  
=== Methods ===
+
=== Instruments ===
==== Subtractive synthesis ====
+
* [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.
* https://en.wikipedia.org/wiki/Subtractive_synthesis
 
  
==== FM synthesis ====
 
* https://en.wikipedia.org/wiki/Frequency_modulation_synthesis
 
  
* YouTube: [https://www.youtube.com/watch?v=u9nuZvxukNI FM Synthesis: How does it work?] - Benn Jordan
+
* [https://chair.audio/ chair.audio] - making digital instruments with analog interfaces. Our mission is to make sounds tangible. That's why we are developing instruments with haptic interfaces for electronic sound - both analog and software synthesis. Our Instruments have excitable surfaces that you can scratch, hit or bow. A very limited run of our developer edition will soon be available here.
  
* YouTube: [https://www.youtube.com/watch?v=ziFv00PegJg Inside Synthesis - FM Synthesis, Part 1]
 
  
* YouTube: [https://www.youtube.com/watch?v=EPADttG4GK0 The Power of FM Workshop 1]
 
* YouTube: [https://www.youtube.com/watch?v=2_wNjPLDWgE The Power of FM Workshop 2]
 
* YouTube: [https://www.youtube.com/watch?v=VFmCP54OB_k The Power of FM Workshop 3]
 
  
==== Additive synthesis ====
+
* https://github.com/SammyIAm/Moppy2 - Musical flOPPY controller
* 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.
 
  
* http://synthesizeracademy.com/additive-synthesis/
 
  
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.
 
  
* http://www.soundonsound.com/sos/jun00/articles/synthsec.htm
+
* https://news.ycombinator.com/item?id=19595623 - roli seaboard
  
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.
+
=== Wire ===
 +
* https://en.wikipedia.org/wiki/Wire_recording
  
==== Wavetable / sample ====
+
* YouTube: [https://www.youtube.com/watch?v=xXhyw2BD9lQ Wire Recording]
* https://en.wikipedia.org/wiki/Wavetable_synthesis
 
  
* [http://msp.ucsd.edu/techniques/latest/book-html/node27.html The Wavetable Oscillator]
 
  
* http://www.nyu.edu/classes/bello/FMT_files/10_MIDI_soundcontrol.pdf
+
=== 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/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.
 
  
* https://en.wikipedia.org/wiki/Sample-based_synthesis
 
  
* https://en.wikipedia.org/wiki/Rompler
+
* 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.
  
* https://en.wikipedia.org/wiki/Scanned_synthesis
+
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.
  
* https://en.wikipedia.org/wiki/Granular_synthesis
 
  
==== Physical modelling synthesis ====
 
* https://en.wikipedia.org/wiki/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.
+
* http://www.terrysmythe.ca/Estey.htm
  
* http://www.soundonsound.com/sos/1994_articles/jul94/yamahavl1.html
+
* [https://midimusic.github.io/estey/index.html Estey Player Organ Music Rolls]
  
 +
* [https://midimusic.github.io/tech/index.html 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.
  
* 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).
+
=== Multitrack recording ===
  
 +
* https://en.wikipedia.org/wiki/Multitrack_recording - also known as multitracking, double tracking, or tracking—is a method of sound recording developed in 1955 that allows for the separate recording of multiple sound sources or of sound sources recorded at different times to create a cohesive whole. Multitracking became possible in the mid-1950s when the idea of simultaneously recording different audio channels to separate discrete "tracks" on the same reel-to-reel tape was developed. A "track" was simply a different channel recorded to its own discrete area on the tape whereby their relative sequence of recorded events would be preserved, and playback would be simultaneous or synchronized.
  
* 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.
+
Prior to the development of multitracking, the sound recording process required all of the singers, band instrumentalists, and/or orchestra accompanists to perform at the same time in the same space. Multitrack recording was a significant technical improvement as it allowed studio engineers to record all of the instruments and vocals for a piece of music separately. Multitracking allowed the engineer to adjust the levels and tone of each individual track, and if necessary, redo certain tracks or overdub parts of the track to correct errors or get a better "take." As well, different electronic effects such as reverb could be applied to specific tracks, such as the lead vocals, while not being applied to other tracks where this effect would not be desirable (e.g., on the electric bass). Multitrack recording was much more than a technical innovation; it also enabled record producers and artists to create new sounds that would be impossible to create outside of the studio, such as a lead singer adding many harmony vocals with their own voice to their own lead vocal part, an electric guitar player playing many harmony parts along with their own guitar solo, or even recording the drums and replaying the track backwards for an unusual effect.
  
 +
In the 1980s and 1990s, computers provided means by which both sound recording and reproduction could be digitized, revolutionizing audio recording and distribution. In the 2000s, multitracking hardware and software for computers was of sufficient quality to be widely used for high-end audio recordings by both professional sound engineers and by bands recording without studios using widely available programs, which can be used on a high-end laptop computer. Though magnetic tape has not been replaced as a recording medium, the advantages of non-linear editing (NLE) and recording have resulted in digital systems largely superseding tape. Even in the 2010s, with digital multitracking being the dominant technology, the original word "track" is still used by audio engineers.
  
* 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.
+
=== Wifi recording ===
  
* https://en.wikipedia.org/wiki/Waveshaper - a type of distortion synthesis in which complex spectra are produced from simple tones by altering the shape of the waveforms.
+
* [http://nyanko.ws/product_sparrow.php Sparrow] - a basic but versatile product, allowing the recording, live broadcasting and other operations common to stage performances and TV/movie recordings.
  
 +
=== MP3 ===
  
* https://en.wikipedia.org/wiki/Linear_predictive_coding
+
* https://en.wikipedia.org/wiki/MP3_player - an electronic device that can play MP3 digital audio files. It is a type of digital audio player, or portable media player. Most players play more than the MP3 file format, such as Windows Media Audio (WMA), Advanced Audio Coding (AAC), Vorbis, FLAC, Speex and Ogg.
  
=== Modular hardware ===
 
* https://www.reddit.com/r/modular/
 
  
* https://www.muffwiggler.com/forum/
+
* https://en.wikipedia.org/wiki/Portable_media_player - or digital audio player (DAP) is a portable consumer electronics device capable of storing and playing digital media such as audio, images, and video files. The data is typically stored on a CD, DVD, BD, flash memory, microdrive, or hard drive. Most portable media players are equipped with a 3.5 mm headphone jack, which users can plug headphones into, or connect to a boombox or hifi system. In contrast, analogue portable audio players play music from non-digital media that use analogue signal storage, such as cassette tapes or vinyl records.Often mobile digital audio players are marketed and sold as "portable MP3 players", even if they also support other file formats and media types. Increasing sales of smartphones and tablet computers have led to a decline in sales of portable media players, leading to most devices being phased out, though flagship devices like the Apple iPod and Sony Walkman are still in production. Portable DVD/BD players are still manufactured by brands across the world.
  
* https://www.modulargrid.net/
 
  
 +
==== Rockbox ====
 +
* [http://www.rockbox.org/ Rockbox] is a free replacement firmware for digital music players. It runs on a wide range of players:
  
* https://en.wikipedia.org/wiki/Doepfer_A-100 - Eurorack
+
==== gtkpod ====
 +
* [http://www.gtkpod.org gtkpod] - a graphical user interface for the Apple iPod for Unix-like systems, written using the GTK+ toolkit.
 +
** http://en.wikipedia.org/wiki/Gtkpod
  
 +
=== PA system ===
 +
* https://en.wikipedia.org/wiki/Public_address_system
  
  
* http://www.modcan.com/
+
* https://en.wikipedia.org/wiki/Constant-voltage_speaker_system - 90v system
  
 +
* YouTube: [https://www.youtube.com/watch?v=x8t9tMxoAWg Differences between 8-Ohm and 70-Volt Systems]
  
* https://github.com/AndrewBelt/WaveEdit - Synthesis Technology WaveEdit for the E370 and E352 Eurorack synthesizer modules
 
  
 +
* https://en.wikipedia.org/wiki/Backline_(stage) - used in popular music and sound reinforcement system contexts to refer to electronic audio amplification equipment and speaker enclosures that are placed behind the band or the rhythm section on stage, including amplifiers and speaker cabinets for guitars, bass guitars and keyboards. In the US and Canada, the term has expanded to include many of the musical instruments that the rhythm section musicians play, including pianos, Hammond organs, drum kits and various percussion instruments such as congas and bongos.
  
* http://www.cim.mcgill.ca/~clark/emusic_DIY.html
+
=== Sound system ===
  
=== DIY ===
+
* https://en.wikipedia.org/wiki/Sound_reinforcement_system - the combination of microphones, signal processors, amplifiers, and loudspeakers in enclosures all controlled by a mixing console that makes live or pre-recorded sounds louder and may also distribute those sounds to a larger or more distant audience. In many situations, a sound reinforcement system is also used to enhance or alter the sound of the sources on the stage, typically by using electronic effects, such as reverb, as opposed to simply amplifying the sources unaltered.
* https://www.reddit.com/r/DIYSynth
 
  
* https://www.reddit.com/r/SynthDIY
+
A sound reinforcement system for a rock concert in a stadium may be very complex, including hundreds of microphones, complex live sound mixing and signal processing systems, tens of thousands of watts of amplifier power, and multiple loudspeaker arrays, all overseen by a team of audio engineers and technicians. On the other hand, a sound reinforcement system can be as simple as a small public address (PA) system, consisting of, for example, a single microphone connected to a 100 watt amplified loudspeaker for a singer-guitarist playing in a small coffeehouse. In both cases, these systems reinforce sound to make it louder or distribute it to a wider audience.
  
* [http://musicfromouterspace.com/index.php?MAINTAB=SYNTHDIY&VPW=1258&VPH=770 Music From Outer Space - Synth-DIY]
+
Some audio engineers and others in the professional audio industry disagree over whether these audio systems should be called sound reinforcement (SR) systems or PA systems. Distinguishing between the two terms by technology and capability is common, while others distinguish by intended use (e.g., SR systems are for live event support and PA systems are for reproduction of speech and recorded music in buildings and institutions). In some regions or markets, the distinction between the two terms is important, though the terms are considered interchangeable in many professional circles.
  
* http://electro-music.com/forum/forum-112.html
 
  
=== Virtual Analogue ===
+
* https://en.wikipedia.org/wiki/Live_event_support
* 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 ===
+
* http://www.reddit.com/r/SoundSystem/wiki/index
* https://www.reddit.com/r/SynthRecipes/
 
  
* http://www.syntorial.com/tutorials/synth-patch-checklist/
+
* [https://www.soundsystem.world/ soundsystem.world] - worldwide map of original soundsystems
  
* http://tweakheadz.com/programmer/
 
  
* http://www.musicradar.com/tuition/tech/old-school-synth-tips-34089
+
* RA: [http://www.residentadvisor.net/feature.aspx?1588 The esoteric art of great sound]
  
* 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.
+
* http://music.tutsplus.com/tutorials/how-to-calculate-a-delay-tower--audio-10471
  
 +
* [https://play.google.com/store/apps/details?id=com.embu.avtools&hl=en AV Tools] - Android app
  
* http://www.synthmania.com/Famous%20Sounds.htm
 
  
* http://www.soundonsound.com/sos/allsynthsecrets.htm
+
* https://en.wikipedia.org/wiki/Sound_system_(Jamaican) - group of disc jockeys, engineers and MCs playing ska, rocksteady or reggae music. The sound system is an important part of Jamaican culture and history.
  
* http://music.tutsplus.com/tutorials/essential-synthesis-part-1-synth-noise-effects--audio-5616
+
* https://en.wikipedia.org/wiki/Sound_system_(DJ) - a group of DJs and audio engineers contributing and working together as one, playing and producing music over a large PA system or sound reinforcement system, typically for a dance event or party.
* http://music.tutsplus.com/tutorials/essential-synthesis-part-2-classic-synth-pads--audio-6208
 
* http://music.tutsplus.com/tutorials/essential-synthesis-part-3-synth-bass--audio-6844
 
  
* http://music.tutsplus.com/tutorials/programming-essential-subtractive-synth-patches--audio-8962
+
=== Noise meter ===
* http://music.tutsplus.com/tutorials/synthesize-a-mini-pluck-with-sylenth1--audio-8954
+
* [https://duncan.bayne.id.au/noise-meter.html Noise Meter] - "My wife and I have both been working from home during the COVID-19 pandemic, and have observed that often our children (3, 6, and 8) will be making noise quite unaware of how loud they’ve become. A quick search showed that there are a number of noise traffic lights on the market, but it occurred to me that I could make my own, and that it would be a great way of learning about the Arduino platform."
  
* http://www.musicradar.com/news/tech/the-40-greatest-synth-sounds-of-all-time-ever-306114
+
== Linux ==
 +
* https://github.com/torvalds/linux/tree/master/sound
  
* http://www.korg.com/us/news/2015/0128/ - MS20
 
  
==== Bass ====
+
* https://git.sleepmap.de/dave/master-thesis.git/
"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." [https://forum.watmm.com/topic/17967-vst-thats-good-for-sub-jungle-basslines/]
 
  
  
* https://www.attackmagazine.com/technique/video-tutorials/reese-bass/
+
"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." [http://www.musicradar.com/news/tech/why-should-you-consider-using-a-linux-based-system-for-music-making-616276]
  
* https://www.attackmagazine.com/technique/tutorials/reese-bass-redux/
+
* https://wiki.archlinux.org/index.php/Professional_audio
  
 +
=== News and communities ===
 +
* [http://linuxaudio.org/ 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.
 +
** http://wiki.linuxaudio.org/wiki/tutorials/start
 +
** http://wiki.linuxaudio.org/apps/start
  
* https://www.attackmagazine.com/technique/synth-secrets/twisted-neuro-bass/
+
* [http://linux-audio.com/ Linux Audio Users Guide]
 +
** http://lists.linuxaudio.org/listinfo/linux-audio-user
  
==== Drums ====
 
* http://www.moogmusic.com/imgs/Synthesized_Percussion_Guide.pdf
 
  
* MusicTech: [http://www.musictech.net/2010/12/drum-synthesis/ Drum Synthesis]
+
* [https://linuxmusicians.com/ LinuxMusicians] forum - mission: to facilitate discussion, learning, and discovery of music making on the Linux platform.
  
* [https://sharphall.org/docs/zynaddsubfx_yoshimi_drum_tutorial.php How to create drum sounds in ZynAddSubFX or Yoshimi, Part 1]
 
  
* SoS: [http://www.soundonsound.com/sos/1996_articles/apr96/analoguedrums.html Creating Drum Sounds On Analogue Synths]
+
* [http://libremusicproduction.com/ 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.
 +
** https://github.com/linuxaudio/libremusicproduction
  
* YouTube: [https://www.youtube.com/watch?v=Vrpr0ohAWxI ANALOG SYNTHESIZED PERCUSSION] - korg
 
  
* YouTube: [https://www.youtube.com/watch?v=Fjj4FIG-y0I Eurorack Modular Kick Drum Tutorial]
+
* http://opensourcemusician.com
 +
** https://archive.org/details/osmpodcast
 +
** #opensourcemusician
  
* YouTube: [https://www.youtube.com/watch?v=gqh8mB4pDoU How To Make An Analog Kick with Tobi Neumann]
 
  
* YouTube: [https://www.youtube.com/watch?v=puTrDZodvM8 Kick Drum Synthesis in FM synth Tutorial]
+
* https://www.reddit.com/r/linuxaudio - A subreddit dedicated towards music and audio related topics on the Linux platform.
  
==== Modular ====
+
==== Mailing lists ====
* http://www.synthesizers.com/sounds.html
+
* https://lists.linuxaudio.org/listinfo - public mailing lists on lists.linuxaudio.org
  
=== PC Speaker ===
 
* https://wiki.gentoo.org/wiki/PC_Speaker
 
  
* http://unix.stackexchange.com/questions/1974/how-do-i-make-my-pc-speaker-beep
+
* [https://lists.linuxaudio.org/pipermail/linux-audio-dev/ The Linux-audio-dev Archives]
 +
** Nabble: [http://linux-audio.4202.n7.nabble.com/linux-audio-dev-f58952.html Linux Audio Developers' Mailing List]
  
echo -e '\a'
+
* [http://lalists.stanford.edu/lad/ Index of /lad] - Stanford archive, 4 more years
 +
* [https://web.archive.org/web/20051222230555/http://www.linuxdj.com/audio/lad/resourcescodecs.php Linux Audio Development - Audio Codecs] - old, 2006 snapshot
  
[http://linux.die.net/man/1/beep beep] - beep the pc speaker any number of ways
 
  
beep -f 200 -f 300
+
* [https://lists.linuxaudio.org/pipermail/linux-audio-announce The Linux-audio-announce Archives]
  # beep at 300Hz.
+
** Nabble: [http://linux-audio.4202.n7.nabble.com/linux-audio-announce-f77690.html The Linux Audio Developers' Mailing List]
  
* 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.
 
  
* https://www.freebsd.org/cgi/man.cgi?query=speaker&sektion=4
+
* [http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org Jack-devel]
 +
** Nabble: [http://jack-audio.10948.n7.nabble.com/Jackit-f3.html Jack-devel]
  
* http://www.tldp.org/HOWTO/Visual-Bell-8.html
 
  
* [http://www.reenigne.org/blog/8088-pc-speaker-mod-player-how-its-done/ 8088 PC Speaker MOD player: How it's done]  
+
* [https://lists.linuxaudio.org/pipermail/linux-audio-user/ The Linux-audio-user Archives]
 +
** Nabble: [http://linux-audio.4202.n7.nabble.com/linux-audio-user-f5.html Linux Audio Users' Mailing List]
  
* [http://blogs.msdn.com/b/larryosterman/archive/2010/01/04/what-s-up-with-the-beep-driver-in-windows-7.aspx 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.
 
  
[http://linux.die.net/man/1/speaker-test speaker-test]
+
* https://lists.linuxaudio.org/pipermail/linux-audio-tuning/
  command-line speaker test tone generator for ALSA
 
  
* https://github.com/wrbs/MidiToBeep - scripts for playing midi files using the linux beep command
 
  
 +
* https://lists.archlinux.org/listinfo/arch-proaudio
  
* [http://plasticity.szynalski.com/tone-generator.htm Online Tone Generator]
+
==== IRC ====
 +
===== Freenode =====
 +
* #lau - Linux Audio Users, slower traffic, related to the [https://wiki.linuxaudio.org/apps/all/lau mailing list]
 +
* #lad - Linux Audio Developers programming chat, related to the [https://wiki.linuxaudio.org/apps/all/lad mailing list]
 +
* #linuxmusicians - slower traffic, related to the [https://linuxmusicians.com forum]
 +
* #opensourcemusicians - related to the [http://opensourcemusician.com podcast], FLOSS on all platforms, chat can get quite general
 +
* #linuxmao - Francophone, related to the [https://linuxmao.org site]
 +
* #audio4linux.de - Germanophone, related to the [http://a4l.de/a4l/ site]
 +
* #archlinux-proaudio - Arch Linux [https://www.archlinux.org/groups/x86_64/pro-audio/ proaudio] [https://wiki.archlinux.org/index.php/Professional_audio project] and general discussion
 +
* #kxstudio - Debian audio repo/distro
 +
* #studioware - Slackware multimedia
 +
* #proaudio-overlay - Gentoo audio
 +
* #lv2 - open audio plugin format
 +
* #jack - audio system
 +
* #alsa - audio system
 +
* #pulseaudio - audio system
 +
* #audacity - sample editor
 +
* #ardour - DAW
 +
* #ingen - audio host
 +
* #non - "DAW"
 +
* #lmms - DAW
 +
* #rosegarden - sequencer
 +
* #zrythm - DAW
 +
* #surgesynth - synth
 +
* ##zynsubaddfx - synth
 +
* #dataflow - Pure Data
 +
* #lilypond - notation
 +
* #laborejo - notation, sequencer, SF2
 +
* #openal - 3d audio
 +
* #vorbis - codec
 +
* ##dsp - digital signal processing
 +
* ##music-electronics
 +
* #musicbrainz - music tagging
 +
* #metabrainz - musicbrains dev
 +
* #edmproduction - related to the [https://old.reddit.com/r/edmproduction subreddit]
 +
* #RedditAudio - mostly audio consumer electronics
 +
* ##xenharmonic - microtonal
 +
* ##audio
 +
* #audiovisual
 +
* ##radio
 +
* ##hamradio
 +
* ##rtlsdr - software defined radio
 +
* ##electronics
 +
* ##music - general music listening chat
 +
* #music - general music listening chat
 +
* #EDM - slow, general electronic dance music chat channel
 +
* #Juce - framework
  
* [http://www.keithwhor.com/music/ Musical Keyboard - JS Dynamic Audio Synth]
+
===== OFTC =====
 +
* #debian-multimedia
  
== Linux ==
+
==== Cons ====
"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." [http://www.musicradar.com/news/tech/why-should-you-consider-using-a-linux-based-system-for-music-making-616276]
+
* [http://lac.linuxaudio.org Linux Audio Conference]
  
* https://wiki.archlinux.org/index.php/Professional_audio
+
* [https://www.sonoj.org/archive/ Sonoj Convention Archive] - media and results from past events
  
=== News and communities ===
+
=== Distros ===
* [http://linuxaudio.org/ 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.
+
See [[Distros#Audio/visual]], [[Playback#Operating System]]
** http://wiki.linuxaudio.org/wiki/tutorials/start
 
** http://wiki.linuxaudio.org/apps/start
 
  
* [http://linux-audio.com/ Linux Audio Users Guide]
+
=== Software lists ===
** http://lists.linuxaudio.org/listinfo/linux-audio-user
+
* [http://planet.linuxaudio.org/ Planet Linux Audio] - aggregated software update news
  
  
* [https://linuxmusicians.com/ LinuxMusicians] forum - mission: to facilitate discussion, learning, and discovery of music making on the Linux platform.
+
* [https://www.gitbook.com/book/jannewmarch/programming-and-using-linux-sound-systems Programming and using Linux sound systems]
 +
An in-depth look at programming sound using Linux — jannewmarch
 +
** https://www.gitbook.com/book/jannewmarch/programming-and-using-linux-sound-systems/details
  
 +
* http://en.wikipedia.org/wiki/List_of_Linux_audio_software
  
* [http://libremusicproduction.com/ 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.
+
* https://www.mindmeister.com/213699337/audio - mindmap
  
 +
* http://linux-sound.org/one-page.html | http://jackaudio.github.io/applications/
  
* http://opensourcemusician.com/
+
* https://github.com/nodiscc/awesome-linuxaudio
** https://archive.org/details/osmpodcast
 
** #opensourcemusician
 
  
 +
* [http://www.linux-sound.org/ Sound & MIDI Software For Linux]
  
* https://www.reddit.com/r/linuxaudio - A subreddit dedicated towards music and audio related topics on the Linux platform.
+
* http://www.alsa-project.org/main/index.php/Applications
  
==== Mailing lists ====
+
* http://www.mixxx.org/wiki/doku.php/list_of_open-source_music_production_software
* https://lists.linuxaudio.org/listinfo - public mailing lists on lists.linuxaudio.org
 
  
* [https://lists.linuxaudio.org/pipermail/linux-audio-announce The Linux-audio-announce Archives]
+
* http://www.hitsquad.com/smm/linux/ - Linux software list
** Nabble: [http://linux-audio.4202.n7.nabble.com/linux-audio-announce-f77690.html The Linux Audio Developers' Mailing List]
 
  
* [https://lists.linuxaudio.org/pipermail/linux-audio-dev/ The Linux-audio-dev Archives]
 
** Nabble: [http://linux-audio.4202.n7.nabble.com/linux-audio-dev-f58952.html Linux Audio Developers' Mailing List]
 
  
 +
* [https://www.kvraudio.com/q.php?search=1&q=&os%5B%5D=lin32&pr%5B%5D=f&ob%5B%5D=dun&bl%5B%5D=t KVR: Linux free software listing] - by date updated
  
** [https://lists.linuxaudio.org/pipermail/linux-audio-user/ The Linux-audio-user Archives]
+
* http://www.kvraudio.com/plugins/linux/free/highest-rated
* Nabble: [http://linux-audio.4202.n7.nabble.com/linux-audio-user-f5.html Linux Audio Users' Mailing List]
+
** http://www.kvraudio.com/forum
  
  
* https://lists.linuxaudio.org/pipermail/linux-audio-tuning/
+
=== Setup ===
 +
to better
  
==== IRC ====
+
* https://wiki.linuxaudio.org/wiki/system_configuration
Freenode:
+
 
* #lau
+
 
* #lad
+
* https://www.alsa-project.org/wiki/Low_latency_howto
* #opensourcemusicians
+
 
* #linuxmusicians
+
 
* #jack
+
 
* #pulseaudio
+
* https://github.com/redtide/archlinux-realtime-generic-setup - Common / generic configuration for an Archlinux RT enabled kernel
* #ardour
+
 
* #ingen
+
* https://github.com/usrmusicman/ArchStudioUtils - Useful Scripts For Archlinux Audio
* #non
+
 
* #lmms
+
* https://gitlab.com/rudenoise/manjaro-setup/-/blob/master/audio-setup.sh
* ##zynsubaddfx
+
 
* #dataflow - pure data
+
* https://github.com/joao4linux/music-daw - The porpuse of this project is to create a shell script to facilitate the process of configuring Ubuntu or Mint operating systems to use the low latency and real-time kernel, transforming your computer into a digital audio workstation (DAW). [https://linuxmusicians.com/viewtopic.php?p=121543&sid=abaa8ab1d30d7a85db92f5c37654f784#p121543]
* #lilypond
+
** https://github.com/joao4linux/music-daw
* #lv2
+
 
* #Juce
+
* https://github.com/elaOnMars/ALSA-only-Jack-Archlinux-Audio-Config
* #kxstudio
+
 
* #archaudio
+
 
* #archlinux-aur
+
 
* #audio4linux.de
+
* https://github.com/dynobot/Linux-Audio-Adjustments -Debian Based RPi tweaks for improved sound.
* ##dsp
+
 
* #kvr
+
* [https://coroto.gitbook.io/linux-audio-survival-kit/ Linux Audio Survival kit. - Linux Audio Survival Kit]
* #RedditAudio
+
 
* ##audio
+
* https://github.com/chmaha/ArchProAudio - A Pro Audio Tuning Guide for Arch (and other Arch-based distros)
* ##music
+
 
* ##
+
=== Real time ===
 +
See also [[*nix#Real-Time]]
 +
 
 +
 
 +
* https://wiki.linuxaudio.org/wiki/real_time_info
  
OFTC:
 
* #debian-multimedia
 
  
==== Cons ====
+
* https://github.com/rncbc/rtirq
* [http://lac.linuxaudio.org Linux Audio Conference]
 
  
* [https://www.sonoj.org/archive/ Sonoj Convention Archive] - media and results from past events
 
  
=== Distros ===
+
* https://github.com/robbert-vdh/dotfiles/blob/master/bin/fix-realtime-scheduling
See [[Distros#Audio/visual]]
 
  
 
== Audio systems ==
 
== Audio systems ==
Line 1,022: Line 995:
  
 
* https://wiki.archlinux.org/index.php/Sound_system
 
* https://wiki.archlinux.org/index.php/Sound_system
 +
  
 
* http://wiki.linuxaudio.org/faq/start
 
* http://wiki.linuxaudio.org/faq/start
  
 
* http://wiki.linuxaudio.org/wiki/system_configuration
 
* http://wiki.linuxaudio.org/wiki/system_configuration
 +
 +
* [https://coroto.gitbook.io/linux-audio-survival-kit/ Linux Audio Survival kit] - A brief guide to have success setting up the audio in Linux.
 +
  
 
* https://github.com/raboof/realtimeconfigquickscan - scripts to inspect a linux installation and make suggestions for improving realtime/audio performance.
 
* https://github.com/raboof/realtimeconfigquickscan - scripts to inspect a linux installation and make suggestions for improving realtime/audio performance.
 +
 +
* https://github.com/linuxaudio/realtime-suggestions - A bash script, that suggests optimization options (while not stating the obvious) for Linux kernel realtime use. As these are just suggestions, they should be considered with a grain of salt: Configurations on Linux distributions can differ quite a lot. That being said: This script will not think for you!
 +
 +
* https://github.com/dynobot/Linux-Audio-Adjustments - Audio Tweaks for Debian Based RPi
 +
 +
 +
* https://github.com/MrAdrianPl/Linux_Audio_Utility_Tool/tree/main - a gui set of tools that will allow easy configuration of Pipewire and in future most likely also wireplumber.
 +
  
  
Line 1,033: Line 1,018:
  
 
* [http://tuxradar.com/content/how-it-works-linux-audio-explained How it works: Linux audio explained]
 
* [http://tuxradar.com/content/how-it-works-linux-audio-explained How it works: Linux audio explained]
 +
 
* [http://www.techradar.com/news/audio/linux-audio-explained-685419 Linux audio explained]
 
* [http://www.techradar.com/news/audio/linux-audio-explained-685419 Linux audio explained]
 +
 
* [http://xed.ch/help/sound.html Linux Sound Help And Tricks]
 
* [http://xed.ch/help/sound.html Linux Sound Help And Tricks]
  
Line 1,048: Line 1,035:
  
 
* https://forum.manjaro.org/t/how-to-replace-pulseaudio-with-jack-jack-and-pulseaudio-together-as-friend/2086
 
* https://forum.manjaro.org/t/how-to-replace-pulseaudio-with-jack-jack-and-pulseaudio-together-as-friend/2086
 +
 +
* [https://discourse.ardour.org/t/not-jack-audio-interface/89043 NOT Jack Audio Interface - Community / Ideas for Ardour - Ardour Forum]
 +
 +
 +
* https://github.com/hodefoting/atty - audio interface and driver for terminals
  
 
=== OSS ===
 
=== OSS ===
Line 1,055: Line 1,047:
  
 
Old.
 
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:
 
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:
Line 1,063: Line 1,056:
 
  cat /dev/dsp > a.a
 
  cat /dev/dsp > a.a
 
   # reads data from the microphone and copies it to file 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.
 
* 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.
 +
 +
 +
* https://github.com/hselasky/virtual_oss - an audio mixing application that multiplexes and demultiplexes asingle OSS device into multiple customizable OSS compatible devicesusing character devices from userspace. These devices can be used torecord played back audio and mix the individual channels in multipleways.
  
 
=== ALSA ===
 
=== ALSA ===
Line 1,076: Line 1,073:
 
* http://lxr.free-electrons.com/source/Documentation/sound/alsa/ALSA-Configuration.txt
 
* http://lxr.free-electrons.com/source/Documentation/sound/alsa/ALSA-Configuration.txt
 
* http://en.wikipedia.org/wiki/Advanced_Linux_Sound_Architecture
 
* http://en.wikipedia.org/wiki/Advanced_Linux_Sound_Architecture
* https://wiki.archlinux.org/index.php/Advanced_Linux_Sound_Architecture
 
  
* http://www.alsa-project.org/main/index.php/Main_Page
 
* http://alsa.opensrc.org/ - existed before official wiki
 
  
 +
* https://wiki.archlinux.org/index.php/Advanced_Linux_Sound_Architecture
  
* https://www.kernel.org/doc/Documentation/sound/kernel-api/alsa-driver-api.rst
+
* https://wiki.gentoo.org/wiki/ALSA
* http://www.alsa-project.org/main/index.php/ALSA_Library_API
 
  
* http://www.alsa-project.org/alsa-doc/alsa-lib/
 
  
* http://processors.wiki.ti.com/index.php/Sitara_Linux_Audio_Sample_Application_Overview
+
* The Linux Kernel documentation: [https://www.kernel.org/doc/html/latest/sound/index.html Linux Sound Subsystem Documentation]
 +
** The Linux Kernel documentation: [https://www.kernel.org/doc/html/latest/sound/alsa-configuration.html Advanced Linux Sound Architecture - Driver Configuration guide]
 +
** [https://www.kernel.org/doc/Documentation/sound/kernel-api/alsa-driver-api.rst The ALSA Driver API]
 +
 
 +
 
 +
* http://www.alsa-project.org/main/index.php/Main_Page
 +
* http://alsa.opensrc.org/ - existed befo
 +
re official wiki
 +
 
 +
 
 +
 
 +
* [https://rendaw.gitlab.io/blog/2125f09a85f2.html#alsa-exposed rendaw - ALSA, exposed!] - [https://lobste.rs/s/vdb8ih/clean_alsa_documentation]
 +
 
 +
 
 +
* http://www.volkerschatz.com/noise/alsa.html
 +
 
 +
* http://www.sabi.co.uk/Notes/linuxSoundALSA.html
 +
 
 +
* [https://web.archive.org/web/20170711175441/http://nairobi-embedded.org/alsa_terminology.html Basic ALSA PCM Terminology]
 +
 
 +
 
 +
* http://www.alsa-project.org/main/index.php/ALSA_Library_API
 +
 
 +
* http://www.alsa-project.org/alsa-doc/alsa-lib
 +
 
 +
* https://www.alsa-project.org/main/index.php/FramesPeriods
 +
 
 +
 
 +
* http://processors.wiki.ti.com/index.php/Sitara_Linux_Audio_Sample_Application_Overview
  
  
 
* http://i.imgur.com/f66sf.png - ALSA job
 
* http://i.imgur.com/f66sf.png - ALSA job
 +
 +
 +
* https://github.com/tiwai/salsa-lib - 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.
 +
  
 
==== Information ====
 
==== Information ====
 
* http://alsa.opensrc.org/Proc_asound_documentation
 
* http://alsa.opensrc.org/Proc_asound_documentation
  
 +
less /proc/asound/card0/pcm0p/sub0/hw_params
 +
  # current hardware info
 +
 
  cat /proc/asound/cards
 
  cat /proc/asound/cards
 
   # List audio hardware
 
   # List audio hardware
Line 1,117: Line 1,145:
  
 
* [http://www.volkerschatz.com/noise/alsacap.html 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.
 
* [http://www.volkerschatz.com/noise/alsacap.html 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.
 +
  
 
* [http://xwmw.org/qastools/applications/qasconfig.html QasConfig] is a graphical browser for the configuration tree and can help to analyze and debug an ALSA setup.
 
* [http://xwmw.org/qastools/applications/qasconfig.html QasConfig] is a graphical browser for the configuration tree and can help to analyze and debug an ALSA setup.
 +
 +
 +
* [https://gist.github.com/SpotlightKid/50986b65db32f6e93e86530bd2b90559 alsa-query.c] - Print hardware capabilities of ALSA device
  
 
==== Configuration ====
 
==== Configuration ====
 
* kernel.org: [https://www.kernel.org/doc/Documentation/sound/alsa/ALSA-Configuration.txt Advanced Linux Sound Architecture - Driver Configuration guide]
 
* kernel.org: [https://www.kernel.org/doc/Documentation/sound/alsa/ALSA-Configuration.txt Advanced Linux Sound Architecture - Driver Configuration guide]
  
[http://linux.die.net/man/1/alsactl alsactl]
+
ALSA settings are stored in file 'asound.state', location can vary depending on distribution
  # advanced controls for ALSA soundcard driver
 
 
alsactl init
 
  # initiate basic configure
 
 
 
  
  
Line 1,143: Line 1,170:
 
  }
 
  }
  
* [http://www.sabi.co.uk/Notes/linuxSoundALSA.html Linux ALSA sound notes]
 
** https://dl.dropboxusercontent.com/u/18371907/asoundrc - mega config suggestions/fixes/information
 
  
* http://www.alsa-project.org/alsa-doc/alsa-lib/pcm.html
+
* [https://www.alsa-project.org/alsa-doc/alsa-lib/pcm.html ALSA project - the C library reference: PCM (digital audio) interface] - ALSA uses the ring buffer to store outgoing (playback) and incoming (capture, record) samples. There are two pointers being maintained to allow a precise communication between application and device pointing to current processed sample by hardware and last processed sample by application. The modern audio chips allow to program the transfer time periods. It means that the stream of samples is divided to small chunks. Device acknowledges to application when the transfer of a chunk is complete.
 +
 
 +
* http://www.alsa-project.org/main/index.php/PCM_Ring_Buffer
  
 
* [http://www.alsa-project.org/alsa-doc/alsa-lib/pcm_plugins.html 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.
 
* [http://www.alsa-project.org/alsa-doc/alsa-lib/pcm_plugins.html 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
+
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.
 
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.
Line 1,156: Line 1,183:
 
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.
 
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
+
[http://www.alsa-project.org/alsa-doc/alsa-lib/pcm_plugins.html#pcm_plugins_file 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")
 
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://www.alsa-project.org/alsa-doc/alsa-lib/pcm_plugins.html#pcm_plugins_file
 
 
* http://www.alsa-project.org/main/index.php/PCM_Ring_Buffer
 
  
  
Line 1,171: Line 1,194:
  
  
* 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).
+
* [https://alsa.opensrc.org/DigitalOut Alsa Opensrc Org] - These instructions apply to digital connections using either electrical coax or optical connections.
  
* http://www.alsa-project.org/main/index.php/Matrix%3aModule-aloop
 
  
 +
* [http://www.sabi.co.uk/Notes/linuxSoundALSA.html Linux ALSA sound notes]
 +
** https://dl.dropboxusercontent.com/u/18371907/asoundrc - mega config suggestions/fixes/information
  
* http://alsa.opensrc.org/Alsa-tools
 
  
* http://alsa.opensrc.org/Speaker-test
+
* [http://tedfelix.com/linux/jack-headphones.html JACK and Headphones] - a virtual device in .asoundrc file that maps two channels of audio to all four channels on the soundcard. With that in place, we need to tell JACK to connect to our new virtual device "hpfix".
* https://www.mythtv.org/wiki/Using_ALSA's_speaker-test_utility
 
  
speaker-test -c 2
 
  # Using 16 octaves of pink noise, alsa-utils
 
  
* http://voices.canonical.com/david.henningsson/2011/11/29/turn-your-mic-jack-into-a-headphone-jack/
 
  
 +
* https://github.com/dh1tw/remoteAudio/wiki/Persistent-USB-Mapping-of-Audio-devices-(Linux)
  
* http://tedfelix.com/linux/jack-headphones.html
 
  
=== PulseAudio ===
 
* [http://www.freedesktop.org/wiki/Software/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.
 
  
* https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/
+
* https://github.com/hselasky/alsa-seq-server - Userspace ALSA MIDI sequencer server
  
  
* https://wiki.archlinux.org/index.php/PulseAudio
 
** https://wiki.archlinux.org/index.php/PulseAudio/Examples
 
  
* http://en.gentoo-wiki.com/wiki/PulseAudio
+
* https://github.com/xTibor/aseqmatrix - A matrix-style patch bay for the ALSA sequencer interface.
  
* http://www.cendio.com/pulseaudio/
 
  
* https://gavv.github.io/blog/pulseaudio-under-the-hood/ [https://news.ycombinator.com/item?id=15310465]
+
* https://github.com/danieloneill/alsalist - Very basic tool to scan ALSA sequencer devices and list clients/sources in an easily parseable way, used (instead of a BASH mess of "aconnect -l" and a pile of pipes) to automate connecting a DTX400k kit USB MIDI data to the output of a USB MIDI adapter.
 
 
===== 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 [http://unix.stackexchange.com/questions/175175/why-does-firefox-create-home-pulse-cookie-when-i-am-not-using-pulseaudio]
+
==== Libraries ====
 +
* https://github.com/yobert/alsa - golang alsa client implementation
  
cookie-file = /tmp/pulse-cookie
+
==== loopback ====
 +
* 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).
  
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:
+
* http://www.alsa-project.org/main/index.php/Matrix%3aModule-aloop
flat-volumes = no
 
  
==== Control ====
 
man pulse-cli-syntax
 
  # pulseaudio commandline help
 
  
 +
==== Tools ====
  
  [http://linux.die.net/man/1/pactl pactl]
+
  [http://linux.die.net/man/1/alsactl alsactl]
   # control a running PulseAudio sound server
+
   # advanced controls for ALSA soundcard driver
 
 
 
 
[http://linux.die.net/man/1/pacmd pacmd]
 
  # reconfigure a PulseAudio sound server during runtime
 
 
   
 
   
  pacmd list-cards
+
  alsactl init
 +
  # initiate basic configure
 
   
 
   
  pacmd dump
+
  alsactl store
 +
  # storae configuration
  
  
 +
* [https://bitbucket.org/stativ/asoundconf stativ / asoundconf] - asoundconf-gtk, the GTK+ applet to allow you to select your default sound card.
  
* http://0pointer.de/lennart/projects/paprefs - PulseAudio Preferences (paprefs) is a simple GTK based configuration dialog for the PulseAudio sound server.
 
  
 +
* http://alsa.opensrc.org/Alsa-tools
 +
** https://launchpad.net/ubuntu/xenial/+package/alsa-tools-gui
 +
*** echomixer - control tool for Echoaudio soundcards
 +
*** envy24control - control tool for Envy24 (ice1712) based soundcards
 +
*** hdajackretask - retask jacks on HDA Intel hardware
 +
*** hdspconf - GUI program to control the Hammerfall HDSP Alsa Settings.
 +
*** hdspmixer - tool to control the advanced routing features of the
 +
*** RME Hammerfall DSP.
 +
*** rmedigicontrol - control tool for RME Digi32 and RME Digi96 soundcards
  
* https://github.com/mk-fg/python-pulse-control - Python high-level interface and ctypes-based bindings for PulseAudio (libpulse)
 
  
* https://github.com/flexibeast/pulseaudio-control - pulseaudio-control controls PulseAudio volumes from Emacs, via pactl.
+
* http://alsa.opensrc.org/Speaker-test
 +
** https://www.mythtv.org/wiki/Using_ALSA's_speaker-test_utility
  
* https://github.com/miek/midi2pamixer - Control PulseAudio mixer with MIDI device
+
speaker-test -c 2
 +
  # Using 16 octaves of pink noise, alsa-utils
  
  
==== Mixer ====
+
* [http://web.archive.org/web/20190702184546/http://voices.canonical.com/david.henningsson/2011/11/29/turn-your-mic-jack-into-a-headphone-jack/ Turn your mic jack into a headphone jack! « A better sounding world] - hdajackretask
===== GUI =====
 
* https://freedesktop.org/software/pulseaudio/pavucontrol
 
** https://github.com/pulseaudio/pavucontrol
 
  
* https://github.com/lxde/pavucontrol-qt - A Pulseaudio mixer in Qt (port of pavucontrol)
 
  
===== CLI =====
+
* https://github.com/nedko/u7 - a program for controlling ALSA volume through Linux input device.
* https://github.com/graysky2/pulseaudio-ctl - Control pulseaudio volume from the shell or mapped to keyboard shortcuts. No need for alsa-utils. [https://bbs.archlinux.org/viewtopic.php?id=124513]
 
  
* https://github.com/cdemoulins/pamixer - like amixer but for pulseaudio. It can control the volume levels of the sinks.
 
  
* https://github.com/falconindy/ponymix - CLI volume control for PulseAudio
 
  
===== TUI =====
+
* https://alsa.opensrc.org/Aconnect
* https://github.com/GeorgeFilipkin/pulsemixer - cli and curses mixer for pulseaudio. horizontal level bars, mousewheel selects channel
 
  
  h/j/k/l, arrows              navigation, volume change
+
* https://github.com/nuc/Midi-Connector -  aconnect wrapper & web ui, to be used on a Raspberry Pi
  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/fulhax/ncpamixer - horizontal ncurses PulseAudio Mixer inspired by pavucontrol.
 
  
* https://github.com/patroclos/PAmix - horizontalncurses/curses pulseaudio mixer in c++ similar to pavucontrol
+
* https://github.com/mzero/amidiminder - ALSA utility to keep your MIDI devices connected
  
  
* 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.
+
* https://github.com/x42/alsa_request_device - This tool sends a request to the session message bus to reserve an audio-device: Other applications which may currently use the device are asked to release it (which may or may not succeed depending on the given priority -p).
  
  
* https://github.com/KenjiTakahashi/pacmixer - an alsamixer alike for PulseAudio. breaks PA connections for PNmixer and gives error. mousewheel = WTF!
+
* https://github.com/gch1p/alsa-volume-monitor - a simple program written in C that listens to ALSA events and emits a DBus signal when something has been changed (e.g. volume). It was created for use with Awesome WM in volume indicator widgets.
  
===== Web =====
 
* https://github.com/Siot/PaWebControl - PulseAudio Web Volume Control. Requirements: PHP web server, PulseAudio pactl command
 
  
==== Other ====
+
* https://github.com/pascalhuerst/alsa2fifo - Simple tool, that reads audio samples from an alsa device and writes it into a fifo.
* 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
 
  
* SE: [https://unix.stackexchange.com/questions/13732/generating-random-noise-for-fun-in-dev-snd Generating random noise for fun in /dev/snd/]
+
* https://github.com/pascalhuerst/alsa2fifo - Simple tool, that reads audio samples from an alsa device and writes it into a fifo.
  
cat /dev/urandom | padsp tee /dev/audio > /dev/null
 
  
 +
* https://github.com/alsa-project/alsa-tests - a collection of various test tools for the API conformance and functionality.
  
* https://github.com/i-rinat/apulse - pulseaudio emulation for ALSA
+
=== PulseAudio ===
 +
* [http://www.freedesktop.org/wiki/Software/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.
  
 +
* https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation
 +
** https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User
 +
*** https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Modules
 +
** https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/Developer
  
* https://github.com/wwmm/pulseeffects - Limiter, compressor, reverberation, equalizer and auto volume effects for Pulseaudio applications
 
  
* http://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Equalizer/
+
* [https://rudd-o.com/linux-and-free-software/how-pulseaudio-works How PulseAudio works] - graphic
** https://sites.google.com/site/nevion/projects/pulseaudio-equalizer
 
** https://gitorious.org/pulseaudio-equalizer/pulseaudio-equalizer
 
** https://sourceforge.net/projects/qpaeq - qpaeq is an equalizer interface for pulseaudio
 
  
* https://github.com/gotbletu/shownotes/blob/master/pulseaudio-dynamic-range-compression.md - LADSPA based FX
 
  
 +
* https://wiki.archlinux.org/index.php/PulseAudio
 +
** https://wiki.archlinux.org/index.php/PulseAudio/Examples
  
* https://github.com/masmu/pulseaudio-dlna - A lightweight streaming server which brings DLNA / UPNP and Chromecast support to PulseAudio and Linux
 
  
* http://hfujita.github.io/pulseaudio-raop2 - Experimental RAOP2 (Apple AirPlay2) support for PulseAudio
+
* http://en.gentoo-wiki.com/wiki/PulseAudio
  
* https://github.com/naftulikay/autopulse - Script for dynamically changing your default PulseAudio sink on hotplug events for USB peripherals, etc.
+
* http://www.cendio.com/pulseaudio/
  
=== JACK ===
+
* [https://gavv.github.io/articles/pulseaudio-under-the-hood/ PulseAudio under the hood] - [https://news.ycombinator.com/item?id=15310465] [https://news.ycombinator.com/item?id=20257254]
See also [[#Jack configuration]]
 
  
* [http://jackaudio.org/ 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.
+
===== 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
  
* https://github.com/jackaudio/jackaudio.github.com/wiki
+
To avoid .pulse-cookie in home folder, set the following in /etc/pulse/client.conf [http://unix.stackexchange.com/questions/175175/why-does-firefox-create-home-pulse-cookie-when-i-am-not-using-pulseaudio]
 +
 
 +
cookie-file = /tmp/pulse-cookie
  
* http://www.jackaudio.org/api/
+
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
  
 +
alternate-sample-rate = 44100
 +
  # in daemon.conf
  
* https://wiki.archlinux.org/index.php/JACK_Audio_Connection_Kit
+
echo "alternate-sample-rate = 44100" >> ~/.pulse/daemon.conf && echo "flat-volumes = no" >> ~/.pulse/daemon.conf
  
  
* https://github.com/jackaudio/jackaudio.github.com/wiki/Q_difference_jack1_jack2
+
man pulse-cli-syntax
 +
  # pulseaudio commandline help
  
* [http://libremusicproduction.com/articles/demystifying-jack-%E2%80%93-beginners-guide-getting-started-jack Demystifying JACK – A Beginners Guide to Getting Started with JACK]
 
  
* [http://0pointer.de/blog/projects/when-pa-and-when-not.html PulseAudio and Jack] - differences
+
[http://linux.die.net/man/1/pactl pactl]
 +
  # control a running PulseAudio sound server
  
  
* http://jack-audio.10948.n7.nabble.com/ - jack user and development mailing lists
+
[http://linux.die.net/man/1/pacmd pacmd]
 +
  # reconfigure a PulseAudio sound server during runtime
 +
 +
pacmd list-cards
 +
 +
pacmd dump
  
=== GStreamer ===
+
pacmd unload-module module-udev-detect && pacmd load-module module-udev-detect [https://superuser.com/questions/845645/pulseaudio-how-to-rescan-audio-devices]
* [http://gstreamer.freedesktop.org/ GStreamer] is a library for constructing graphs of media-handling components. The applications it supports range from simple Ogg/Vorbis playback, audio/video streaming to complex audio (mixing) and video (non-linear editing) processing.
+
  # register a new device
** https://en.wikipedia.org/wiki/GStreamer
 
** https://wiki.archlinux.org/index.php/GStreamer
 
  
* http://www.gstreamer.com/ - sdk
+
pacmd load-module module-null-sink sink_name=virtual
 +
  # loopback device
 +
  
=== sndio ===
 
* [http://www.sndio.org/ 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.
 
  
* https://www.reddit.com/r/linux/comments/3i849k/playing_around_with_openbsds_sound_server_sndio/
+
* http://0pointer.de/lennart/projects/paprefs - PulseAudio Preferences (paprefs) is a simple GTK based configuration dialog for the PulseAudio sound server.
  
=== CRAS ===
 
* [http://www.chromium.org/chromium-os/chromiumos-design-docs/cras-chromeos-audio-server 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 ===
+
* https://pypi.org/project/pulsectl - high-level interface and ctypes-based bindings for PulseAudio (libpulse), mostly focused on mixer-like controls and introspection-related operations (as opposed to e.g. submitting sound samples to play, player-like client).
* https://github.com/dspdaemon/dspd - A Linux sound daemon with minimal dependencies that implements several existing APIs and protocols
+
** https://github.com/mk-fg/python-pulse-control
  
=== aRts ===
 
See [[#aRts_2]]
 
  
=== Enlightened Sound Daemon ===
+
* https://github.com/flexibeast/pulseaudio-control - pulseaudio-control controls PulseAudio volumes from Emacs, via pactl.
* https://en.wikipedia.org/wiki/Enlightened_Sound_Daemon - old
 
  
=== Pipewire ===
 
* https://pipewire.org - new, audio and video
 
** https://github.com/PipeWire/pipewire
 
  
=== Integration ===
+
* https://github.com/umlaeute/pa-systray - tiny systray icon to turn on/off pulseaudio
* JACK FAQ: [http://jackaudio.org/faq/pulseaudio_and_jack.html How use PulseAudio and JACK?]
 
* https://github.com/jackaudio/jackaudio.github.com/wiki/WalkThrough_User_PulseOnJack
 
  
* [https://docs.fedoraproject.org/en-US/Fedora/18/html/Musicians_Guide/sect-Musicians_Guide-Integrating_PulseAudio_with_JACK.html Fedora: Integrating PulseAudio with JACK]
+
* https://github.com/christophgysin/pasystray - allows setting the default PulseAudio source/sink and moving streams on the fly between sources/sinks without restarting the client applications.
* YouTube: [https://www.youtube.com/watch?v=DyZNi7bf8Uw jackAndPulse]
 
  
* JACK FAQ: [http://jackaudio.org/faq/routing_flash.htm How do I route audio from Flash to JACK?]
 
* JACK FAQ: [http://jackaudio.org/faq/gstreamer_via_jack.html Routing GStreamer audio via JACK]
 
  
* [http://www.goplexian.com/2010/02/setting-up-jack-audio-for-gstreamer.html 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/Junker/mictray - a Lightweight application which lets you control the microphone state and volume from system tray
  
  
* 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
+
* https://github.com/miek/midi2pamixer - Control PulseAudio mixer with MIDI device
  
=== Windows ===
 
* [http://www.asio4all.com/ ASIO4ALL] - Universal ASIO Driver For WDM Audio
 
  
=== Network ===
+
* Gist: [https://gist.github.com/lightrush/4fc5b36e01db8fae534b0ea6c16e347f  Normalize volume level with PulseAudio]
* [http://netjack.sourceforge.net/ 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.
 
** http://www.flujos.org/wiki/netjack/
 
  
* [https://github.com/jcacerec/jacktrip/ 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 ===
+
* https://github.com/rhaas80/pa_volume - a simple tool to set the remembered volume level of pulseaudio clients. It requires module-stream-restore to be loaded (which is usually the case) to function. When called without arguments it shows all the known clients (running and non-running) and their remembered volume level. To set the volume level pass it the name of the client followed by the volume in pecent.
* [http://planet.linuxaudio.org/ Planet Linux Audio] - aggregated software update news
 
  
 +
==== Mixer ====
 +
===== GUI =====
 +
See also [[GUI#Volume / audio]]
  
* [https://www.gitbook.com/book/jannewmarch/programming-and-using-linux-sound-systems Programming and using Linux sound systems]
+
====== pavucontrol ======
An in-depth look at programming sound using Linux — jannewmarch
+
* https://freedesktop.org/software/pulseaudio/pavucontrol
** https://www.gitbook.com/book/jannewmarch/programming-and-using-linux-sound-systems/details
+
** https://gitlab.freedesktop.org/pulseaudio/pavucontrol
 +
** https://github.com/pulseaudio/pavucontrol - mirror
  
* http://en.wikipedia.org/wiki/List_of_Linux_audio_software
+
====== pavucontrol-qt ======
 +
* https://github.com/lxde/pavucontrol-qt - A Pulseaudio mixer in Qt (port of pavucontrol)
  
* https://www.mindmeister.com/213699337/audio - mindmap
+
====== pavucontrol (compact fork) ======
 +
* https://github.com/rafalcieslak/pavucontrol - fork with a compact UI
  
* http://linux-sound.org/one-page.html | http://jackaudio.github.io/applications/
+
====== Myxer ======
 +
* https://github.com/VixenUtils/Myxer - a lightweight, powerful Volume Mixer built with modern UI design for a seamless user experience. Devices, Streams, and even Card profiles can all be managed with Myxer, providing a complete replacement for your system Volume Mixer.
  
* https://github.com/nodiscc/awesome-linuxaudio
+
===== CLI =====
 +
====== pulseaudio-ctl ======
 +
* https://github.com/graysky2/pulseaudio-ctl - Control pulseaudio volume from the shell or mapped to keyboard shortcuts. No need for alsa-utils. [https://bbs.archlinux.org/viewtopic.php?id=124513]
  
* [http://www.linux-sound.org/ Sound & MIDI Software For Linux]
+
====== pamixer ======
 +
* https://github.com/cdemoulins/pamixer - like amixer but for pulseaudio. It can control the volume levels of the sinks.
  
* http://www.alsa-project.org/main/index.php/Applications
+
====== ponymix ======
 +
* https://github.com/falconindy/ponymix - CLI volume control for PulseAudio
  
* http://www.mixxx.org/wiki/doku.php/list_of_open-source_music_production_software
+
====== PAmix ======
 +
* https://github.com/patroclos/PAmix - ncurses/curses pulseaudio mixer in c++ similar to pavucontrol
  
* http://www.hitsquad.com/smm/linux/ - Linux software list
+
===== TUI =====
 +
* https://github.com/GeorgeFilipkin/pulsemixer - cli and curses mixer for pulseaudio. horizontal level bars, mousewheel selects channel
  
 +
  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://www.kvraudio.com/q.php?search=1&q=&os%5B%5D=lin32&pr%5B%5D=f&ob%5B%5D=dun&bl%5B%5D=t KVR: Linux free software listing] - by date updated
 
  
* http://www.kvraudio.com/plugins/linux/free/highest-rated
+
* https://github.com/fulhax/ncpamixer - horizontal ncurses PulseAudio Mixer inspired by pavucontrol.
** http://www.kvraudio.com/forum
 
  
== Audio formats ==
 
* http://www.fmtz.com/misc/raw-audio-file-formats
 
  
* [http://www.xiph.org/video/vid2.shtml 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.
+
* https://github.com/patroclos/PAmix - horizontalncurses/curses pulseaudio mixer in c++ similar to pavucontrol
  
  
* [http://www.vgmpf.com/ Video Game Music Preservation Foundation] - the Wikipedia of video game music!
+
* 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.
  
  
=== PCM ===
+
* https://github.com/KenjiTakahashi/pacmixer - an alsamixer alike for PulseAudio. breaks PA connections for PNmixer and gives error. mousewheel = WTF!
* 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.
+
* https://github.com/TheDarrenJoseph/purses - PulseAudio ncurses Audio Visualiser written in C
  
* https://jannewmarch.gitbooks.io/programming-and-using-linux-sound-systems/content/Sampled/Codecs/PCM.html
+
===== Web =====
 +
* https://github.com/Siot/PaWebControl - PulseAudio Web Volume Control. Requirements: PHP web server, PulseAudio pactl command
  
=== PDM ===
+
==== Processing ====
* 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.
+
===== pulseaudio-equalizer =====
 +
* http://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Equalizer - A LADSPA based multiband equalizer approach for getting better sound out of pulseaudio. This equalizer clearly is more potent than the (deprecated ?), optional one from Pulseaudio.
 +
** https://sites.google.com/site/nevion/projects/pulseaudio-equalizer
 +
** https://github.com/kernelOfTruth/pulseaudio-equalizer
 +
** https://gitorious.org/pulseaudio-equalizer/pulseaudio-equalizer
  
* https://curiouser.cheshireeng.com/2014/11/04/using-a-pdm-microphone/
+
* https://sourceforge.net/projects/qpaeq - qpaeq is an equalizer interface for pulseaudio
  
=== WAVE ===
+
===== Loudness Equalizer =====
* 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.
+
* https://github.com/gotbletu/shownotes/blob/master/pulseaudio-dynamic-range-compression.md - Loudness Equalizer aka Pulseaudio Dynamic Range Compression (LADSPA swh-plugins)
  
 +
===== T5! Crossover Rack / Parametric Equalizer =====
 +
* [https://t-5.eu/hp/Home T5!] - DIY DSP software projects, speaker crossovers and equalization in software. This is for several reasons: It is way easier to adjust filters in software than in hardware and you will be adjusting a lot while designing your own speakers... In my opinion software based filters (DSP) are good enough to perform similarly if not better than their analog counterparts. With a multi-channel DAC multi-amping is a no-brainer, too.    Processing power is cheap nowadays, analog circuitry is not.Thus you will find some  on this page.
  
* http://www.lightlink.com/tjweber/StripWav/Canon.html
+
* [https://t-5.eu/hp/Software/ladspa-t5-plugins/ ladspa-t5-plugins] - a collection of LADSPA audio processing plugins. They are used in the Pulseaudio Parametric Equalizer and Pulseaudio Crossover Rack.
 +
** https://gitlab.com/t-5/ladspa-t5-plugins
  
=== MP3 ===
+
* [https://t-5.eu/hp/Software/Pulseaudio%20Crossover%20Rack/ Pulseaudio Crossover Rack] - a program to design and implement multi-way speaker crossovers using any linux powered computer with a multi-channel sound card and a running desktop environment which uses Pulseaudio as it's sound backend. It also uses a set of LADSPA plugins, namely ladspa-t5-plugins for the heavy lifting of DSP/autio processing. It's written in python3 and uses QT as the windowing toolkit.
* [http://en.wikipedia.org/wiki/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.
+
** https://gitlab.com/t-5/paxoverrack
  
* http://ryanmaguiremusic.com/theghostinthemp3.html [https://news.ycombinator.com/item?id=7955917]
+
* [https://t-5.eu/hp/Software/Pulseaudio%20Parametric%20Equalizer Pulseaudio Parametric Equalizer] - a python GUI to insert a fully parametric three band equalizer with high and low shelves into the pulseaudio audio server. I mainly wrote this being inspired by the existing project pulseaudio-euqalizer. I was in need of a fully parametric EQ for proper speaker response equalization though and so I wrote whis application.
 +
** https://gitlab.com/t-5/PulseAudioParametricEq
  
* http://www.walterdevos.be/how-to-check-quality-of-mp3-file
+
===== vamp-live-host =====
 +
* https://github.com/chrisbaume/vamp-live-host - Host for vamp plugins which processes a live audio signal using pulseaudio.
  
==== Encoding ====
+
===== micFX =====
* [http://lame.sourceforge.net/ LAME] is a high quality MPEG Audio Layer III (MP3) encoder licensed under the LGPL.
+
* https://github.com/schelcc/micFX - Live microphone effects in linux using SoX and pulseaudio
* http://savvyadmin.com/batch-mp3-encoding-with-linux-and-lame/
 
  
for f in *.wav ; do lame "$f" ; done
+
===== prettyeq =====
 +
* https://github.com/keur/prettyeq - a system-wide paramateric equalizer for pulseaudio [https://news.ycombinator.com/item?id=24586239]
  
 +
===== pulseaudio-webrtc-audio-processing =====
 +
* https://github.com/freedesktop/pulseaudio-webrtc-audio-processing - meant to be a more Linux packaging friendly copy of the AudioProcessing module from the WebRTC[ project. The ideal case is that we make no changes to the code to make tracking upstream code easy.
  
* [http://khenriks.github.io/mp3fs/ 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. [https://news.ycombinator.com/item?id=8314651]
+
===== sound-of-interrupts =====
 +
* https://github.com/matiaslina/sound-of-interrupts -  A small program that make sounds depending on the amount of disruption that has the processor using pulseaudio
  
==== Metadata ====
+
===== JDSP4Linux =====
* http://en.wikipedia.org/wiki/ID3
+
* https://github.com/Audio4Linux/JDSP4Linux - An audio effect processor for PipeWire and PulseAudio clients
  
* http://wiki.slimdevices.com/index.php/Beginners_Guide_To_Tagging
+
==== Other ====
 +
===== pasuspender =====
 +
pasuspender -- audacity
 +
  # temporaraly suspend pulseaudio and launch audacity, for when PA gets in the way and config yak shaving isn't an option
  
* http://id3.org/Home
+
===== autopulse =====
* http://id3.org/Implementations
+
* https://github.com/naftulikay/autopulse - Script for dynamically changing your default PulseAudio sink on hotplug events for USB peripherals, etc.
  
* http://id3v2.sourceforge.net/
+
===== pamidicontrol =====
* http://linux.die.net/man/1/mid3v2
+
* https://github.com/solarnz/pamidicontrol -  A utility to control the volume of PulseAudio streams / sinks / sources with a midi device
  
* http://search.cpan.org/dist/MP3-Info/
+
===== vu =====
* http://search.cpan.org/dist/MP3-Tag/
+
* https://github.com/zezic/vu - Super-smooth VU meter for PulseAudio
* http://search.cpan.org/dist/MP3-Find/
 
  
* http://id3-py.sourceforge.net/
+
===== papeaks =====
* http://nedbatchelder.com/code/modules/id3reader.html
+
* https://github.com/futpib/papeaks - PulseAudio volume peaks as a text or binary output (for scripts to work with)
* http://eyed3.nicfit.net/
 
* https://code.google.com/p/mutagen/
 
  
* http://kid3.sourceforge.net/
+
===== padsp =====
 +
* 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
  
* http://sourceforge.net/projects/bulkid3/
+
* SE: [https://unix.stackexchange.com/questions/13732/generating-random-noise-for-fun-in-dev-snd Generating random noise for fun in /dev/snd/]
  
* [http://eyed3.nicfit.net/ 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.
+
cat /dev/urandom | padsp tee /dev/audio > /dev/null
  
=== AAC ===
+
===== apulse =====
* 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.
+
* https://github.com/i-rinat/apulse - pulseaudio emulation for ALSA
  
* http://en.wikipedia.org/wiki/High-Efficiency_Advanced_Audio_Coding
+
===== pulseaudio-dlna =====
 +
* https://github.com/masmu/pulseaudio-dlna - A lightweight streaming server which brings DLNA / UPNP and Chromecast support to PulseAudio and Linux
  
=== Ogg ===
+
===== pulseaudio-raop2 =====
* [http://www.xiph.org/ogg Ogg] is a multimedia container format, and the native file and stream format for the Xiph.org multimedia codecs.
+
* http://hfujita.github.io/pulseaudio-raop2 - Experimental RAOP2 (Apple AirPlay2) support for PulseAudio
** http://en.wikipedia.org/wiki/Ogg
 
  
Container format.
+
===== noise-volume-daemon =====
 +
* https://github.com/sonofevil/noise-volume-daemon - Bash script which dynamically fades in/out the volume of an audio-generating process (e.g. an ambient noise generator like anoise.py) in response to whether other processes are using audio. Requires Pulseaudio. Uses pipes that might be fragile. Can't tell the difference between paused and playing audio.
  
==== Vorbis ====
+
===== pagraphcontrol =====
* http://xiph.org/vorbis
+
* https://github.com/futpib/pagraphcontrol - PulseAudio Graph Control
** http://en.wikipedia.org/wiki/Vorbis
 
  
==== Opus ====
+
===== PulseDroid =====
* [http://www.opus-codec.org/ 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.
+
* https://github.com/dront78/PulseDroid
** http://en.wikipedia.org/wiki/Opus_%28codec%29
+
** https://superuser.com/questions/605445/how-to-stream-my-gnu-linux-audio-output-to-android-devices-over-wi-fi
  
==== FLAC ====
+
=== JACK ===
* [https://xiph.org/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.
+
See also [[#JACK configuration]]
  
* http://sourceforge.net/projects/flacsquisher
+
* [http://jackaudio.org/ JACK] - a 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.
 +
** https://github.com/jackaudio/jackaudio.github.com/wiki/jackd(1)
  
=== AMR ===
 
* http://en.wikipedia.org/wiki/Adaptive_Multi-Rate_audio_codec
 
  
* http://sourceforge.net/projects/opencore-amr/
+
* https://en.wikipedia.org/wiki/JACK_Audio_Connection_Kit
  
=== AC-3 ===
+
* https://github.com/jackaudio/jackaudio.github.com/wiki
* https://en.wikipedia.org/wiki/Dolby_Digital
 
  
 +
* https://wiki.archlinux.org/index.php/JACK_Audio_Connection_Kit
  
* http://aften.sourceforge.net/
 
  
=== NICAM ===
+
* [http://jack-audio.10948.n7.nabble.com JACK user and development mailing lists]
* 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.
 
  
* http://www.bbc.co.uk/rd/blog/2016-01-35-million-people-didnt-notice-a-thing-dot-dot-dot [https://news.ycombinator.com/item?id=10937872]
 
  
=== Vinyl ===
+
* https://github.com/jackaudio/jackaudio.github.com/wiki/Q_difference_jack1_jack2
* http://en.wikipedia.org/wiki/Gramophone_record
 
  
* https://en.wikipedia.org/wiki/RIAA_equalization
+
* [http://libremusicproduction.com/articles/demystifying-jack-%E2%80%93-beginners-guide-getting-started-jack Demystifying JACK – A Beginners Guide to Getting Started with JACK]
  
* http://wow.heavylistening.com/
+
* [http://0pointer.de/blog/projects/when-pa-and-when-not.html PulseAudio and Jack] - differences
  
  
 +
* http://www.jackaudio.org/api
  
=== Playlist formats ===
 
* http://en.wikipedia.org/wiki/M3U
 
  
* http://en.wikipedia.org/wiki/PLS_(file_format) [http://forums.winamp.com/showthread.php?threadid=65772]
 
  
* http://en.wikipedia.org/wiki/Advanced_Stream_Redirector - RTSP & MMS
+
* [http://www.orford.org/assets/jack-idiots_guide.txt Sound Engineers Guide to Jackd] - This page attempts to collect in one place various issues surrounding the design and abilities of Paul Davis's wonderful Jackd from the point of view of a technical user. It is not an introduction or a usage howto.
  
* http://www.xspf.org/ - xiph
 
** http://en.wikipedia.org/wiki/XML_Shareable_Playlist_Format
 
  
== Ripping ==
+
* PDF: [https://www.grame.fr/ressources/publications/Timing.pdf Timing Measurements In JACK 2] - S. Letz, D. Fober, Y. Orlarey, Grame - Centre national de cr ́eation musicale
=== Asunder ===
 
* [http://littlesvr.ca/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 ===
+
* PDF: [https://lac.zkm.de/2005/papers/fernando_lopez_lezcano.pdf Surviving on Planet CCRMA, two Years Later and Still alive.] - Fernando Lopez-Lezcano, 2005
* https://github.com/thomasvs/morituri - a CD ripper aiming for accuracy over speed for UNIX systems. Its features are modeled to compare with Exact Audio Copy on Windows.
 
  
== Fingerprinting ==
 
* http://en.wikipedia.org/wiki/Acoustic_fingerprint
 
  
* http://wiki.musicbrainz.org/AudioFingerprint
+
* https://github.com/Barrett17/libjackcompat - an experimental media_kit compatibility layer and a rewrite of the jack API. This is done by emulating the jack client using an Haiku media_node as backend.
  
* [http://echoprint.me 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.
+
==== Clients ====
  
* http://developer.echonest.com/
+
* [https://jackaudio.org/api/group__ClientFunctions.html JACK-AUDIO-CONNECTION-KIT: Creating & manipulating clients]
** https://developer.spotify.com/news-stories/2016/03/29/audio-features-recommendations-user-taste/
 
  
* http://acoustid.org/
 
  
* https://code.google.com/p/musicg/
+
* https://github.com/jackaudio/example-clients
 +
** https://github.com/jackaudio/example-clients/blob/master/inprocess.c - internal client, runs as part of jackd
  
* http://www.w140.com/audio/
 
  
* http://www.comparisonics.com/overview.html
+
* https://github.com/resinbeard/jacksandbox - a simple JACK client for learning and testing audio code.
  
* https://github.com/worldveil/dejavu [https://news.ycombinator.com/item?id=8303713]
 
  
== Conversion ==
+
* https://github.com/marcdinkum/jack_module - C++ wrapper for JACK audio, containg lock free ringbuffers and some examples.
=== SoundConverter ===
 
* [http://soundconverter.org/ 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 ===
 
* [http://vorzox.wix.com/pacpl 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 ===
+
* https://github.com/fps/jack_wakeup - A small utility to sample wakeup times for a jackd client. Its usefullness is mostly limited to being run as the only client in a jack session since only in this case it's guaranteed to be run as soon as possible after a period has started.
* [http://www.mega-nerd.com/SRC/ 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.
+
* https://github.com/fps/jack2_split - A program that facilitates parallelism in serial jack graphs by introducing latency. Only useful for jack2/jackdmp - it does nothing but add latency in jack1 setups.
 +
 
 +
 
 +
* https://github.com/dagargo/jack-client-template -  Template to create JACK clients
 +
 
 +
==== Libraries / headers ====
 +
 
 +
* https://github.com/jackaudio/headers - JACK API headers
  
=== audiomap ===
 
* [https://sites.google.com/site/nevion/projects/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 ===
+
* https://github.com/ventosus/jack_osc - a workaround for Jack to support routing sample-accurate OSC packets via Jack MIDI ports as discussed at LAC2014.
* https://ccrma.stanford.edu/~jos/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
+
* https://github.com/x42/weakjack - small library abstracts the JACK Application Binary Interface for weak/runtime libjack linking.
  # start jackd, realtime priority 89, ALSA engine soundcard hw:0, sample rate of 48k, 256 max ports, instancename
 
  
  
* [http://manpages.ubuntu.com/manpages/precise/man1/jack_iodelay.1.html 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://github.com/stetre/luajack - a Lua binding library for the JACK Audio Connection Kit. It runs on GNU/Linux and requires Lua (>=5.3) and JACK (API >= v0.124.1).
  
* 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.
 
  
 +
* https://gitlab.com/gabrbedd/jacksquat - A JACK mock library for use in unit testing
  
=== jack_control ===
+
==== Metadata ====
D-Bus control via python2-dbus
 
  
jack_control start
+
* https://github.com/jackaudio/jack2/blob/develop/common/JackMetadata.cpp#L30
  # 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
+
* https://github.com/drobilla/jackey - Jack Metadata Property Definitions
  # 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.:
+
* [https://gist.github.com/SpotlightKid/dc70dac006337c99bf65bcdc98e43ddc jack-property-listener.py] - Listen to and print JACK client/port meta-data changes.
  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
 
  
 +
=== sndio ===
 +
* [http://www.sndio.org/ 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.
  
==== jackman ====
+
* https://en.wikipedia.org/wiki/sndio
* https://github.com/progwolff/jackman - Collection of scripts that help managing multiple audio interfaces with Jack
 
** https://github.com/progwolff/jackman_kcm - GUI for KDE Config Manager
 
  
==== ASTRUX ====
+
* https://wiki.voidlinux.eu/Sndio
* [http://rmouneyres.free.fr/software.html#astrux ASTRUX] - A setup creation tool for live-oriented musicians (under active development by Raphaël Mouneyres)
 
** https://github.com/jerash/astrux
 
  
=== Session/config management ===
+
* https://www.reddit.com/r/linux/comments/3i849k/playing_around_with_openbsds_sound_server_sndio/
* [http://lwn.net/Articles/533594/ A brief survey of Linux audio session managers] - January 23, 2013
 
  
* https://www.linuxmusicians.com/viewtopic.php?f=47&t=10945#p39846
+
=== PipeWire ===
* https://www.linuxmusicians.com/viewtopic.php?t=2841#p13843
+
See [[Audiovisual#PipeWire]]
  
* http://lsn.ponderworthy.com/doku.php/robust_session_management
+
=== CRAS ===
* http://lsn.ponderworthy.com/doku.php/concurrent_patch_management
+
* [http://www.chromium.org/chromium-os/chromiumos-design-docs/cras-chromeos-audio-server 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.
  
==== LASH Audio Session Handler ====
+
* https://notabug.org/ghaglund/cras
* [http://savannah.nongnu.org/projects/lash LASH] - a session management system for GNU/Linux audio applications. It allows you to save and restore audio sessions consisting of multiple interconneced applications, restoring program state (ie loaded patches) and the connections between them.
 
  
Dead. Inflexible and underused.
+
=== dspd ===
 +
* https://github.com/dspdaemon/dspd - A Linux sound daemon with minimal dependencies that implements several existing APIs and protocols
  
* [http://dino.nongnu.org/glashctl/ 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".
+
=== aRts ===
 +
See [[#aRts_2]]
  
==== LADISH ====
+
=== NAS ===
* [https://web.archive.org/web/20140102123853/http://ladish.org/ 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.
+
* [http://www.radscan.com/nas.html The Network Audio System (NAS)] - a network transparent, client/server audio transport system. It can be described as the audio equivalent of an X server. Enjoy!
** 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
+
** https://en.wikipedia.org/wiki/Network_Audio_System
  
* [https://web.archive.org/web/20131006032219/http://ladish.org/wiki/gladish_keyboard_shortcuts gladish_keyboard_shortcuts]
+
=== Enlightened Sound Daemon ===
 +
* https://en.wikipedia.org/wiki/Enlightened_Sound_Daemon - old
  
* [http://www.penguinproducer.com/Blog/2011/12/the-ladi-session-handler/ The LADI Session Handler]
+
=== Integration ===
 +
* JACK FAQ: [http://jackaudio.org/faq/pulseaudio_and_jack.html How use PulseAudio and JACK?]
 +
* https://github.com/jackaudio/jackaudio.github.com/wiki/WalkThrough_User_PulseOnJack
  
===== LADI Tools =====
+
* [https://docs.fedoraproject.org/en-US/Fedora/18/html/Musicians_Guide/sect-Musicians_Guide-Integrating_PulseAudio_with_JACK.html Fedora: Integrating PulseAudio with JACK]
* 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.
+
* YouTube: [https://www.youtube.com/watch?v=DyZNi7bf8Uw jackAndPulse]
  
In a near future, it should also be possible to use laditools to control JACK through an OSC interface.
+
* JACK FAQ: [http://jackaudio.org/faq/routing_flash.htm How do I route audio from Flash to JACK?]
 +
* JACK FAQ: [http://jackaudio.org/faq/gstreamer_via_jack.html Routing GStreamer audio via JACK]
  
You will find in this suite:
+
* [http://www.goplexian.com/2010/02/setting-up-jack-audio-for-gstreamer.html 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).
* 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 ====
 
* https://wiki.linuxaudio.org/apps/categories/jack_session
 
  
* originally jack 1 (not D-Bus)
+
* 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 [https://linuxmusicians.com/viewtopic.php?f=19&t=13234]
  
* Saving a session will save the state of all 'JACK Session'-supported apps plus their JACK connections
+
=== Apple ===
* Opening a session will automatically launch those apps, restoring their state and JACK connections
+
See [[Apple#Audio]]
* Supported apps can be told to save/load their state to/from a specific location
 
  
 +
=== Windows ===
 +
See [[Windows]]
  
* [https://github.com/jackaudio/jackaudio.github.com/wiki/WalkThrough_Dev_JackSession WalkThrough_Dev_JackSession]
+
* https://wiki.jriver.com/index.php/Audio_Output_Modes
  
* [http://jackaudio.org/files/docs/html/group__SessionClientFunctions.html JACK Session API for clients.]
 
  
 +
* https://en.wikipedia.org/wiki/Windows_legacy_audio_components
  
* http://audio-and-linux.blogspot.co.uk/2011/08/jacksession-first-steps-it-rocks.html
 
  
 +
* https://en.wikipedia.org/wiki/Windows_98#Windows_Driver_Model
  
* https://github.com/torbenh3/pyjacksm - a simple sessionmanager for the jack-session protocol. jacksmtray should start the tray app, which controls the sessionmanager daemon.
+
* https://en.wikipedia.org/wiki/Universal_Audio_Architecture - Vista
  
 +
* https://en.wikipedia.org/wiki/Technical_features_new_to_Windows_Vista#Audio
  
* https://github.com/fps/js_wrap - A simple wrapper for non jack_session enabled apps whose state can be fully qualified by the cmdline to run them
 
  
==== QjackCtl ====
+
* https://wiki.jriver.com/index.php/WASAPI - is Microsoft's most modern method for talking with audio devices. It is available in Windows Vista, Windows 7, and later versions of Windows. It allows delivering an unmodified bitstream to a sound device, and provides benefits similar to those provided by ASIO drivers. One of the other main benefits of WASAPI is that it provides applications with exclusive access to audio devices, bypassing the system mixer, default settings, and any typically any effects provided by the audio driver. WASAPI is the recommended Audio Output Mode for Windows unless your audio device has a well-behaved ASIO driver, and it effectively replaces all legacy output modes including Kernel Streaming and Direct Sound.
* [http://qjackctl.sourceforge.net/ 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
 
  
* https://github.com/cybercatalyst/jackcontrol - older qt4 fork
+
* https://en.wikipedia.org/wiki/DirectSound -  a deprecated software component of the Microsoft DirectX library for the Windows operating system. DirectSound provides a low-latency interface to sound card drivers wrcven for Windows 95 through Windows XP and can handle the mixing and recording of multiple audio streams.
  
==== Cadence ====
+
* https://en.wikipedia.org/wiki/DirectMusic - a deprecated component of the Microsoft DirectX API that allows music and sound effects to be composed and played and provides flexible interactive control over the way they are played. Architecturally, DirectMusic is a high-level set of objects, built on top of DirectSound, that allow the programmer to play sound and music without needing to get quite as low-level as DirectSound. DirectSound allows for the capture and playback of digital sound samples, whereas DirectMusic works with message-based musical data. Music can be synthesized either in hardware, in the Microsoft GS Wavetable SW Synth, or in a custom synthesizer.
* [http://kxstudio.sourceforge.net/Applications: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)
 
** [http://kxstudio.sourceforge.net/Documentation:Manual:cadence_introduction Cadence] - controls and monitors various Linux sound systems as well as audio-related system settings
 
  
cadence --minimized &
+
* https://en.wikipedia.org/wiki/XAudio2 - a lower-level audio API for Microsoft Windows, Xbox 360 and Windows Phone 8, the successor to DirectSound on Windows and a supplement to the original XAudio on the Xbox 360. XAudio2 operates through the XAudio API on the Xbox 360, through DirectSound on Windows XP, and through the low-level audio mixer WASAPI on Windows Vista and higher.
  
===== Claudia =====
 
* [http://kxstudio.linuxaudio.org/Applications:Claudia Claudia] - a LADISH frontend; it's just like Catia, but focused at session management through LADISH.
 
  
* jack2 (dbus)
+
* [http://www.asio4all.com/ ASIO4ALL] - Universal ASIO Driver For WDM Audio
  
* [http://kxstudio.sourceforge.net/Applications:Claudia-Launcher 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.
 
  
 +
* https://github.com/chriskohlhoff/asio - Asio C++ Library
  
* http://kxstudio.linuxaudio.org/Documentation:Manual:simple_claudia_studio
 
  
 +
* https://github.com/duncanthrax/scream - a virtual device driver for Windows that provides a discrete sound device. Audio played through this device is published on your local network as a PCM multicast stream.Receivers on the network can pick up the stream and play it through their own audio outputs. Receivers are available for Unix/Linux (interfacing with PulseAudio or ALSA) and for Windows. For the special scenario of a Windows guest on a QEMU host, @martinellimarco has contributed support for transferring audio via the IVSHMEM driver mechanism, similar to the GPU pass-through software "Looking Glass". See the section on IVSHMEM below. Scream is based on Microsoft's MSVAD audio driver sample code. The original code is licensed under MS-PL, as are my changes and additions
  
==== Non Session Manager ====
 
* [http://non.tuxfamily.org/nsm/ 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.
+
* https://github.com/andreiw/adlib21 - Updated Windows 3.1/3.11 msadlib.drv for 21st century with support for OPL2LPT/OPL3LPT
  
  non-session-manager -- --session-root path
+
== JACK configuration ==
 +
  pasuspender -- jackd
 +
  # temporaraly suspend pulseaudio and start jack (needed for jack1 without PA patch)
  
  
* http://non.tuxfamily.org/nsm/API.html - going beyond LASH (L0/L1 (a unix signal handler for SIGUSR1 and trigger a save)) and JACK-Session (L2)
+
* [https://manpages.debian.org/stretch/jackd1/jackd.1.en.html jackd(1)] - the JACK audio server daemon, a low-latency audio server. Originally written for the GNU/Linux operating system, it also supports Mac OS X and various Unix platforms. JACK can connect a number of different client applications to an audio device and also to each other. Most clients are external, running in their own processes as normal applications. JACK also supports internal clients, which run within the jackd process using a loadable "plugin" interface.
  
* http://non.tuxfamily.org/wiki/ApplicationsSupportingNsm
 
  
* 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.
+
  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
  
  
* 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.
+
* [http://web.archive.org/web/20200211021915/https://penguinproducer.com/Blog/2011/10/balancing-performance-and-reliability-in-jack/ Balancing Performance and Reliability in Jack – The Penguin Producer]
  
  
* https://github.com/rhetr/nsm-scripts - various scripts to supplement non session manager (NSM) usage.
+
* [https://www.linuxmusicians.com/viewtopic.php?f=47&t=10707 List of JACK Frame & Period settings ideal for USB interface - LinuxMusicians] - (Frames/Sample Rate) * Period = Theoretical (or Math-derived) Latency
  
* 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.
 
  
* https://github.com/ViktorNova/stagepatch - nsm-git fork. Persistent audio and MIDI patchbay daemon for NSM, which auto-connects remembered devices when they reappear. Based on aj-snapshot
+
=== Utilities ===
 +
# jack2 package commands
 +
jack_alias
 +
jack_bufsize
 +
jack_control
 +
jack_cpu
 +
jack_cpu_load
 +
jack_disconnect
 +
jack_evmon
 +
jack_freewheel
 +
jack_iodelay
 +
jack_latent_client
 +
jack_load
 +
jack_metro
 +
jack_midi_dump
 +
jack_midi_latency_test
 +
jack_midiseq
 +
jack_midisine
 +
jack_monitor_client
 +
jack_multiple_metro
 +
jack_net_master
 +
jack_net_slave
 +
jack_netsource
 +
jack_rec
 +
jack_samplerate
 +
jack_server_control
 +
jack_session_notify
 +
jack_showtime
 +
jack_simple_client
 +
jack_simple_session_client
 +
jack_test
 +
jack_thru
 +
jack_transport
 +
jack_unload
 +
jack_wait
 +
jack_zombie
 +
 +
jack_connect fluidsynth:l_00 system:playback_3 jack_connect fluidsynth:r_00 system:playback_4
 +
 +
[http://manpages.ubuntu.com/manpages/xenial/man1/jack_lsp.1.html jack_lsp]
 +
  # list jack ports
 +
 +
jack_lsp -c
 +
  # list jack port connections (sinks indented)
  
  
* https://github.com/scgolang/nsm - Non session manager OSC protocol implemented in Go
+
* [https://manpages.debian.org/stretch/jack-tools/jack-play.1.en.html jack-play(1) — jack-tools — Debian stretch — Debian Manpages] - a light-weight JACK sound file player. It creates as many output ports as there are channels in the input file. It will connect to ports mentioned in the environment variable JACK_PLAY_CONNECT_TO which must include a %d pattern to indicate port number, otherwise it implements no connection logic, use jack-plumbing(1) instead. Written by Rohan Drape.
  
* https://github.com/scgolang/gonzo - Command line nsm server. I started this project out of frustration with trying to write nsm clients.
+
* q=0: SRC_LINEAR
 +
* q=1: SRC_ZERO_ORDER_HOLD
 +
* q=2: SRC_SINC_FASTEST
 +
* q=3: SRC_SINC_MEDIUM_QUALITY
 +
* q=4: SRC_SINC_BEST_QUALITY
  
==== MonoMultiJack ====
 
* [http://ix.residuum.org/desktop/monomultijack.html 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 ====
+
* [http://manpages.ubuntu.com/manpages/precise/man1/jack_iodelay.1.html 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://web.archive.org/web/20160309135320/http://jacklinx.nl/ JackLinx] - Simple Session Manager for the Music Classroom.
 
** https://github.com/felison/JackLinx - dead?
 
  
Preselected applications.
 
  
* https://issuu.com/felison/docs/jacklinx-manual-131212-1218
+
* 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.
  
==== chino ====
 
* [http://chino.tuxfamily.org/ 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.
 
** http://chino.tuxfamily.org/documentation/
 
 
chino -n newproject
 
  # start newproject in current directory
 
 
chino -o existingproject
 
  # open existingproject
 
  
 +
* https://github.com/anwyn/systemd.user - ALSA, Jack, Pulseaudio and Systemd User Sessions
  
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 ===
+
==== jack_control ====
* [http://users.suse.com/~mana/jack.html QJackConnect] - a QT based patchbay for the JACK Audio Connection Kit.
 
  
==== Catia ====
+
* https://github.com/LADI/jack_control - a small program for exposing jackdbus functionality at command-line. Chained execution of several commands is possible. For example "jack control ds alsa dps midi-driver raw eps realtime on eps relatime-priority 70 start" selects ALSA driver, enables JACK MIDI raw backend, enables realtime mode, sets realtime priority to 70 and starts JACK server.
* [http://kxstudio.linuxaudio.org/Applications:Catia Catia] is a JACK Patchbay, with some neat features like A2J bridge support and JACK Transport.
 
  
==== Patchage ====
+
D-Bus control via python2-dbus
* [http://drobilla.net/software/patchage/ Patchage] is a modular patch bay for audio and MIDI systems based on Jack and Alsa.
 
  
 +
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
  
==== Patchmatrix ====
+
jack_control dg
* [https://github.com/OpenMusicKontrollers/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.
+
  # current driver
 +
 +
jack_control dp
 +
  # current driver paramaters
  
==== jsweeper ====
+
jack_control dl
* [https://fuzzle.org/~petern/jsweeper.html 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.
+
  # drivers list
** http://git.fuzzle.org/jsweeper.git/
+
 +
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
  
 +
==== jack-select ====
 +
* https://github.com/SpotlightKid/jack-select - A systray application to quickly change the JACK-DBus configuration from QjackCtl presets.
 +
 +
==== jackman ====
 +
* https://github.com/progwolff/jackman - Collection of scripts that help managing multiple audio interfaces with Jack
 +
** https://github.com/progwolff/jackman_kcm - GUI for KDE Config Manager
  
==== njconnect ====
+
==== jacksettings ====
* [http://sourceforge.net/projects/njconnect/ njconnect] - Curses Jack connection manager
+
* https://github.com/qtilities/jacksettings - Configure a JACK server started as a jackdmp user systemd service. This application uses the CLI11 command line parser.
  
==== CliConnect ====
+
=== Connections ===
* [http://openavproductions.com/cliconnect/ CliConnect] is a minimal terminal based JACK connection manager. Why is that useful? For using over SSH mostly.
 
** https://github.com/harryhaaren/openAV-cliconnect
 
  
==== esjit ====
+
* https://linuxmusicians.com/viewtopic.php?p=95025#p95025- jack_load audioadapter
* [https://bbs.archlinux.org/viewtopic.php?id=104897 esjit] - a text-mode JACK audio connection manager. not in AUR anymore.
 
** https://github.com/lotuskip/esjit - dead?
 
  
 +
==== alsa_in / alsa_out ====
 +
* man: [http://manpages.ubuntu.com/manpages/natty/man1/alsa_in.1.html alsa_in, alsa_out] - Jack clients that perform I/O with an alternate audio interface
 +
** [http://www.penguinproducer.com/Blog/2011/11/using-multiple-devices-with-jack/ Using Multiple Devices with Jack]
 +
** https://github.com/jackaudio/jackaudio.github.com/wiki/WalkThrough_User_AlsaInOut
  
=== Routing snapshots ===
+
alsa_in -j "Description" -d prefix:Name -q 1 2>&1 1> /dev/null &
==== aj-snapshot ====
+
  # used to send ALSA microphone input to an JACK input device
* [http://aj-snapshot.sourceforge.net/ 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.
+
  # -d = device name, hw:2
 +
  # -q = quality of resampler, 1-4
 +
  # -c = channels, automatic default
 +
  # -r 48000 = sample rate, automatic default
  
  aj-snapshot filename
+
  alsa_in
   # make a snapshot
+
   # can automatically detect and open an available soundcard (what type? doesn't work for usb mic)
+
 
  aj-snapshot -r filename
+
  arecord -l
   # restore a snapshot
+
  ...
 +
  card 2: AK5370 [AK5370], device 0: USB Audio [USB Audio]
 +
  Subdevices: 0/1
 +
   Subdevice #0: subdevice #0
 
   
 
   
  aj-snapshot -d filename &
+
  alsa_in  -dhw:2 -jusb-mic
   # run in daemon mode
+
   # or
 +
alsa_in -dhw:AK5370 -j "USB Mic"
  
  
* [http://lsn.ponderworthy.com/doku.php/robust_session_management 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
+
alsa_out -j "Description" -d prefix:Name -q 1 2>&1 1> /dev/null &
 +
  # used to send JACK output to an ALSA device, like a speaker or headphones
  
  
==== autocable ====
+
If you get "Capture open error: Device or resource busy", some other program has control of the playback interface.  
* https://github.com/murrayfoster/autocable - A tiny C application that loads a text file and routes Jack audio connections for you.
 
  
echo "connect system:capture_1 system:playback_1
+
To see what application has control of the interface:
> disconnect system:capture_2 system:playback_2" | ./autocable
+
fuser -u /dev/snd/pcmC0D0p
 +
  # this is card 0, device 0, pcm playback
  
./autocable yourdirectory/textfile.ac
+
If it's pulseaudio, launch pavucontrol, go to the Configuration tab and select Off for the device(s).
  
  
* [https://llllllll.co/t/beginning-a-gnu-linux-jack-headless-performance-system/1119 Beginning a GNU/Linux/JACK headless performance system] - with autocable and qjackctl for visual demonstration
+
* https://github.com/IARI/alsa_jack_gui - qt-based gui to manage alsa_jack bridges
  
==== JMess ====
+
==== Zita-ajbridge ====
* 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.
+
* [http://kokkinizita.linuxaudio.org/linuxaudio/zita-ajbridge-doc/quickguide.html 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.
  
  jmess -s filename.xml
+
  cat /proc/asound/cards
  # save
 
 
   
 
   
  jmess -c filename.xml
+
  zita-a2j -dhw:3,0 -jwebcam
  # load
 
 
jmess -d -c filename.xml
 
  # disconnect all then load
 
 
jmess -d
 
  # disconnect all
 
  
==== jack_snapshot ====
 
* [https://sourceforge.net/projects/heaven/files/Audio%20Applications/Jack%20Related/jack_snapshot/ jack_snapshot] - a little tool for storing/restoring jack connection states. it does this by writing/reading the names of the connected ports into/from a simple textfile. and here is also one weakness: some jack clients don't use the same jack name on each run, but dynamically assign one [like meterbridge] but most of them can be told to use a specific name, so this isn't really a problem. at least not for me. some pattern matching might be added in the future..
 
  
==== jack-plumbing ====
+
==== Jack Std-I/O ====
* [http://rd.slavepianos.org/?t=rju&e=jack-plumbing.ad 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.
+
* [http://gareus.org/oss/jackstdio/start 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.
 +
** https://github.com/x42/jack-stdio - unix pipe audio-data from and to JACK
  
==== jack-matchmaker ====
+
=== Configuration GUI ===
* [https://github.com/SpotlightKid/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
+
==== QjackCtl ====
 +
* [http://qjackctl.sourceforge.net/ QjackCtl] - JACK Audio Connection Kit - Qt GUI Interface
  
==== Jack Sanity ====
+
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.
* [http://nbsp.io/jack-sanity Jack Sanity] - A scriptable environment using '''JavaScript''' for controlling jackdbus clients.
 
** https://github.com/psychoticmeow/jack-sanity
 
  
==== jacklistener etc. ====
+
* D-Bus control and Jack 2 D-Bus control
* https://github.com/gentoo-root/jacklistener
+
* Connection and JACK Session manager
  
* https://github.com/gentoo-root/jacknotifier
+
* https://github.com/kmatheussen/qjackctl_macos - Scripts to build qjackctl for macos
  
* https://github.com/gentoo-root/jackeventcmd
 
  
 +
* https://github.com/cybercatalyst/jackcontrol - older qt4 fork
  
==== jackstdio ====
+
==== Cadence ====
* [http://gareus.org/oss/jackstdio/start 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.
+
* [http://kxstudio.sourceforge.net/Applications: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)
 +
** [http://kxstudio.sourceforge.net/Documentation:Manual:cadence_introduction Cadence] - controls and monitors various Linux sound systems as well as audio-related system settings
  
==== Zita-ajbridge ====
+
cadence --minimized &
* [http://kokkinizita.linuxaudio.org/linuxaudio/zita-ajbridge-doc/quickguide.html 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
+
==== Studio Controls ====
+
* https://github.com/ovenwerks/studio-controls - A helper for setting up a system for audio work. Formerly known as Ubuntu Studio Controls.
zita-a2j -dhw:3,0 -jwebcam
 
  
==== jack_audio_send / jack_audio_receive ====
 
* https://github.com/7890/jack_tools/tree/master/audio_rxtx - jack_audio_send & jack_audio_receive - JACK clients allowing to transmit uncompressed
 
native JACK 32 bit float audio data on the network using UDP OSC messages.
 
  
* https://github.com/7890/audio_rxtx_gui
+
* https://manpages.ubuntu.com/manpages/man1/studio-controls.1.html
  
== Plugins ==
 
* https://www.kvraudio.com/plugins/linux/free/newest
 
  
=== Formats ===
+
* https://manpages.ubuntu.com/manpages/man2/studio-system.2.html
* https://www.youtube.com/user/UPROAR24
 
  
==== VST ====
 
* https://en.wikipedia.org/wiki/Virtual_Studio_Technology
 
  
paths:
+
* https://manpages.ubuntu.com/manpages/man2/autojack.2.html
~.vst
 
/usr/lib/vst
 
/usr/local/lib/vst
 
~/.wine/drive_c/Program Files (x86)/VstPlugins
 
~/.wine/drive_c/Program Files/VstPlugins
 
  
 +
==== Jack Control Panel ====
 +
* https://gitlab.com/IGBC/jackctl - A no fuss solution to wrangling Pro-Audio on Linux:
  
* [https://github.com/falkTX/JackAss 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.
 
  
 +
=== Other utils ===
 +
to sort
  
* http://www.freesoundeditor.com/downloads/vst_doc/toby_newman_dissertation.pdf
+
* https://github.com/jackaudio/tools
  
 +
* https://github.com/jackaudio/jack-example-tools - Official examples and tools from the JACK project
  
* https://vst-preset-generator.org
 
  
  
* https://github.com/x42/lv2vst - LV2 - VST wrapper. Expose LV2 plugins as VST2 plugins to a VST plugin-host on Windows, OSX and Linux.
+
* [http://rohandrape.net/?t=rju rd: rju] - jackd utilities:
 +
** http://rohandrape.net/sw/rju/cmd
 +
** https://salsa.debian.org/multimedia-team/jack-tools
  
==== LADSPA ====
+
* jack-data: jack audio data onto osc (May 2016)
~/.ladspa
+
* jack-dl: load dsp algorithms from shared libraries (October 2008)
/usr/local/lib/ladspa
+
* jack-level: jack cli level meter (April 2019)
/usr/lib/ladspa
+
* jack-lxvst: jack cli host for linux vst instruments (April 2016)
 +
* jack-osc: jack <-> open sound control daemon (January 2004)
 +
* jack-play: resampling soundfile playback (November 2003)
 +
* jack-plumbing: plumbing daemon (July 2003) [https://rohandrape.net/?t=rju&e=md/rju-plumbing.md rju-plumbing.md] - JACK Plumbing Daemon
 +
* jack-record: soundfile recording (April 2004)
 +
* jack-scope: plain X oscilloscope (January 2004)
 +
* jack-transport: minimalist ncurses jack transport (November 2006)
 +
* jack-udp: jack over udp client (November 2003)
  
* [http://www.ladspa.org/ Linux Audio Developer's Simple Plugin API] (LADSPA)
 
  
* http://torhelgeskei.blogspot.co.uk/2017/01/ladspawrapper-v001.html
 
  
==== LV2 ====
+
* https://github.com/7890/jack_tools - alternative jack_* helpers
* [http://lv2plug.in/ 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
 
  
* https://en.wikipedia.org/wiki/LV2
+
* https://github.com/Gimmeapill/xruncounter - Small linux tool written in C by Hermann Meyer (aka @brummer10) to measure jack xruns and evaluate the overall performance of a system for realtime audio.
  
* http://libregraphicsworld.org/blog/entry/lv2-1-0-released-what-is-next
 
  
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.
+
* https://github.com/SpotlightKid/jack-audio-tools - A collection of utilities and tools for the JACK audio ecosystem
  
  
* [https://github.com/jeremysalwen/lv2file lv2file] is a simple program which you can use to apply effects to your audio files without much hassle.
+
* [https://media.ccc.de/v/lac2018-46-jacktools_realtime_audio_processors_as_python_classes media.ccc.de - zita-jacktools - Realtime Audio Processors as Python Classes] - LAC 2018
  
* [http://naspro.sourceforge.net/applications.html lv2proc] generates an output sound file by applying a LV2 effect plugin to an input sound file.
 
  
 +
* https://github.com/be1/jackie - a small graphical jackd launcher
  
* [https://www.linuxmusicians.com/viewtopic.php?f=44&t=11360 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.
 
  
 +
* https://github.com/falkTX/wineasio - provides an ASIO to JACK driver for WINE. ASIO is the most common Windows low-latency driver, so is commonly used in audio workstation programs.
  
* [http://naspro.sourceforge.net/plugins.html 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.
 
  
 +
* https://github.com/kmatheussen/KillJack - The Jack server sometimes crashes/freezes in ways which make users restart the computer in order to use Jack again. This program kills Jack unconditionally. Executables for Linux, MacOS, and Windows are provided. I strongly recommend that all programs using Jack includes a program like this.
  
* https://github.com/x37v/pdlv2 - turns pure data patches into LV2 plugins
 
  
 +
* https://github.com/guysherman/jack-passthrough - jack client with a known name that can be used to play nice with some apps that work with JACK in a weird way
  
* http://carlh.net/plugins/torture.php - to help with testing of LADSPA and LV2 plugins.
 
  
 +
* https://github.com/dagargo/overwitch - JACK client for Overbridge devices
  
* https://github.com/falkTX/Shella - LV2 to VST2 wrapper
 
  
 +
* https://github.com/xkr47/jacktools - a simple JACK client that just dumps more or less any info it can get its hands on, including updates.
 +
 +
== Session management ==
 +
* [http://lwn.net/Articles/533594/ A brief survey of Linux audio session managers] - January 2013
  
* https://github.com/ventosus/alluis.lv2 - LV2 plugin to test various LV2 UI toolkits
+
* LinuxMusicians: [https://www.linuxmusicians.com/viewtopic.php?f=47&t=10945#p39846 Re: Non-stuff in KXStudio] - April 2013, a comparison of session managers
 +
* LinuxMusicians: [https://www.linuxmusicians.com/viewtopic.php?t=2841#p13843 Re: jack_session] - August 210, LASH vs LADISH
  
* https://github.com/OpenMusicKontrollers/orbit.lv2 - LV2 Event Looper
+
* Linux Synth Notes: [http://web.archive.org/web/20161104071509/http://lsn.ponderworthy.com/doku.php/robust_session_management robust_session_management]
 +
* Linux Synth Notes: [http://web.archive.org/web/20160622234419/http://lsn.ponderworthy.com/doku.php/concurrent_patch_management concurrent_patch_management]
  
==== DSSI ====
+
* [https://digitaldub.wordpress.com/2009/12/16/linux-audio-session-scripting/ linux audio session scripting] - 2009
* http://dssi.sourceforge.net
 
  
* https://en.wikipedia.org/wiki/Disposable_Soft_Synth_Interface
+
Use something NSM based! Argodejo or RaySession.
  
* http://smbolton.com/linux.html
 
  
 +
==== LASH Audio Session Handler (/ LADCCA) ====
 +
* [https://web.archive.org/web/20090131205157/http://www.lash-audio.org/ LASH - Trac] - a session management system for JACK and ALSA audio applications on GNU/Linux. It is an implementation of a proposal that originated from this discussion. 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. LASH doesn't deal with any kind of audio data itself; it just runs programs, deals with saving/loading (arbitrary) data and connects different kinds of virtual audio ports together (currently JACK and ALSA sequencer ports). It can also be used to move entire sessions between computers, or post sessions on the Internet for download.
 +
** [http://savannah.nongnu.org/projects/lash LASH] - a session management system for GNU/Linux audio applications. It allows you to save and restore audio sessions consisting of multiple interconneced applications, restoring program state (ie loaded patches) and the connections between them.
  
* http://libmodsynth.sourceforge.net/
+
Dead. Inflexible and underused.
  
=== Creating ===
+
* [http://dino.nongnu.org/glashctl/ 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".
See also [[#Audio programming]] and [[#Graphical programming]]
 
  
* [http://hise.audio/ 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.
 
** https://github.com/christophhart/HISE
 
  
* https://github.com/AuburnSounds/dplug
+
formerly;
** [http://www.modernmetalproduction.com/dplug-developing-vst-plugins-for-linux/ Dplug For Developing VST Plugins on Linux] [https://news.ycombinator.com/item?id=15058198]
 
  
=== Hosts ===
+
* [https://savannah.nongnu.org/projects/ladcca LADCCA] - session management system for JACK audio and ALSA MIDI applications on GNU/Linux. LADCCA's aim is to allow you to have many different audio programs running at once, to save their setup, close them down and then reload the setup at some other time. LADCCA doesn't deal with any kind of audio data itself; it just runs programs, deals with saving/loading data and connects different kinds of virtual audio ports together (currently JACK and ALSA sequencer ports.)LADCCA's name has changed and development continues as the LASH project.
==== Multiple ====
+
* [http://pkl.net/~node/software/lash/ladcca-manual-html-split/ladcca-manual_toc.html Linux Audio Developer's Configuration and Connection API - Table of Contents] - Audio application session management and configuration
===== Carla =====
+
** https://wiki.linuxaudio.org/apps/all/ladcca
* [http://kxstudio.sourceforge.net/Applications: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.
 
** https://github.com/falkTX/Carla
 
  
 +
Became LASH.
  
There are 4 types of engine processing:
+
==== LADISH ====
 +
* [https://web.archive.org/web/20140102123853/http://ladish.org/ 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 - '''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
 +
** https://github.com/alessio/ladish/
  
* '''Single-client''': (JACK driver only) - carla-jack-single
+
* [https://web.archive.org/web/20131006032219/http://ladish.org/wiki/gladish_keyboard_shortcuts gladish_keyboard_shortcuts]
** 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.
 
  
 +
* [http://www.penguinproducer.com/Blog/2011/12/the-ladi-session-handler/ The LADI Session Handler]
  
carla-single
 
  # usage: /usr/bin/carla-single [arch (optional)] [format] [filename/uri] [label (optional)] [uniqueId (optional)]
 
  
Possible archs:
+
==== LADI Tools ====
  - native (default)
+
* 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.
  - linux32
 
  - linux64
 
  - win32
 
  - win64
 
  
Possible formats:
+
In a near future, it should also be possible to use laditools to control JACK through an OSC interface.
  - internal
 
  - ladspa
 
  - dssi
 
  - lv2
 
  - vst|vst2
 
  - gig
 
  - sf2
 
  - sfz
 
  
Examples:
+
You will find in this suite:
/usr/bin/carla-single internal midisplit
+
* laditools - python module
/usr/bin/carla-single dssi /usr/lib/dssi/whysynth.so
+
* 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...)
/usr/bin/carla-single lv2 http://calf.sourceforge.net/plugins/Compressor
+
* wmladi - a controller as a Window Maker dockapp which uses a menu similar to ladi-system-tray's
/usr/bin/carla-single native vst /usr/lib/vst/TAL-NoiseMaker.so
+
* ladi-system-log - a JACK, LADISH and a2jmidid log viewer
/usr/bin/carla-single win32 vst "~/.wine/drive_c/Program Files (x86)/VstPlugins/Kontakt 5.dll"
+
* 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
  
  
 +
==== Claudia ====
 +
* [http://kxstudio.linuxaudio.org/Applications:Claudia Claudia] - a LADISH frontend; it's just like Catia, but focused at session management through LADISH.
  
* 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.
+
* jack2 (dbus)
  
===== Ingen =====
+
* [http://kxstudio.sourceforge.net/Applications:Claudia-Launcher 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.
* [http://drobilla.net/software/ingen/ Ingen] (formerly Om) is a modular audio processing system for GNU/Linux audio systems using the Jack audio server and LV2 or LADSPA plugins.
 
** YouTube: [https://www.youtube.com/watch?v=eMj-q5adAZ4 Creating Modular Synths using Ingen and ams-lv2 - Part 1]
 
** YouTube: [https://www.youtube.com/watch?v=NgqtEZeXyrc Creating Modular Synths using Ingen and ams-lv2 - Part 2]
 
** YouTube: [https://www.youtube.com/watch?v=j1UbFOOkGFA Linux Sound Design: Experimenting with Ingen, Ring Mod, and Bitwig]
 
  
* http://lac.linuxaudio.org/2015/papers/24.pdf
 
  
* https://github.com/rhetr/ingen-scripts
+
* http://kxstudio.linuxaudio.org/Documentation:Manual:simple_claudia_studio
  
===== Jost =====
 
* [http://www.anticore.org/jucetice/?page_id=4 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.
 
** https://www.kvraudio.com/product/jost_by_jucetice
 
  
==== VST ====
+
* https://repo.or.cz/klaudia.git - formerly
* [http://teragonaudio.com/MrsWatson.html 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
 
** https://github.com/teragonaudio/MrsWatson
 
  
 +
=== JACK Session ===
 +
* https://wiki.linuxaudio.org/apps/categories/jack_session - deprecated
  
* [http://breakfastquay.com/dssi-vst/ dssi-vst] - Run Windows VST plugins on Linux. DSSI doesn't support host tempo to plugin features.
+
* 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
  
* [http://www.joebutton.co.uk/fst/ 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.
 
  
* [http://festige.sourceforge.net/ FeSTige] - a GUI for fst and dssi-vst, allowing you to run Windows VST plugins on Linux.
+
* [https://github.com/jackaudio/jackaudio.github.com/wiki/WalkThrough_Dev_JackSession WalkThrough_Dev_JackSession]
  
* [http://sourceforge.net/projects/fsthost/ 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. doesn't see JACK server..?
+
* [http://jackaudio.org/files/docs/html/group__SessionClientFunctions.html JACK Session API for clients.]
** https://sourceforge.net/p/fsthost/code/HEAD/tree/trunk/README
 
  
fsthost -g ~/.vst
 
  # build plugin db
 
  
export VST_PATH=~/VST:/usr/share/vst:/otherlocation
+
* http://audio-and-linux.blogspot.co.uk/2011/08/jacksession-first-steps-it-rocks.html
 
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
 
  
 +
* https://github.com/torbenh3/pyjacksm - a simple sessionmanager for the jack-session protocol. jacksmtray should start the tray app, which controls the sessionmanager daemon.
  
* [https://github.com/phantom-code/airwave 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." [https://linuxmusicians.com/viewtopic.php?f=48&t=16043]
+
* https://github.com/fps/js_wrap - A simple wrapper for non jack_session enabled apps whose state can be fully qualified by the cmdline to run them
  
  
* https://github.com/kmatheussen/vstserver - an old program vstlib server
+
=== New Session Manager (NSM) ===
  
* https://github.com/abique/vst-bridge - a bridge to run Windows VST plugins (both 32 and 64 bits) with Linux VST hosts.
+
* [https://jackaudio.github.io/new-session-manager/ New Session Manager] - a tool to assist music production by grouping standalone programs into sessions. Your workflow becomes easy to manage, robust and fast by leveraging the full potential of cooperative applications.It is a community version of the "NON Session Manager" and free in every sense of the word: free of cost, free to share and use, free of spyware or ads, free-and-open-source.You can create a session, or project, add programs to it and then use commands to save, start/stop, hide/show all programs at once, or individually. At a later date you can then re-open the session and continue where you left off.All files belonging to the session will be saved in the same directory.
 +
** https://github.com/linuxaudio/new-session-manager
  
* 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.
 
  
 +
* [http://non.tuxfamily.org/nsm/ Non Session Manager] - an [older] 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. 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.
  
* [https://pastebin.com/8D7zhL4f Linvstblast] [https://linuxmusicians.com/viewtopic.php?f=48&t=17789]
 
  
 +
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.
  
* [http://www.vstforx.de/index.php/product-details/vstforx 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
 
  
 +
* http://non.tuxfamily.org/wiki/ApplicationsSupportingNsm
  
  
* https://sourceforge.net/projects/l-proaudio
+
* 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://sourceforge.net/p/l-proaudio/wiki/Home
 
  
  
* [http://netvst.org/ NetVST] - Windows only
+
* 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.
** http://netvst.org/blog
 
  
==== DSSI ====
 
* [http://smbolton.com/linux.html 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 ====
+
* https://github.com/rhetr/nsm-scripts - various scripts to supplement non session manager (NSM) usage.
* [http://jack-rack.sourceforge.net/ 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.
 
** https://github.com/jwm-art-net/jack-rack
 
  
* [http://code.google.com/p/jackspa/ 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.
+
* 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.
  
* [https://gna.org/projects/ngjackspa 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.
 
  
* [http://sourceforge.net/projects/soundtank/ 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.
+
* https://github.com/diovudau/pynsm2 - Non Session Manager client library in Python - Version2: No dependencies except Python3.
  
* [https://sourceforge.net/p/stomper/wiki/Home/ 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 ====
+
* [https://git.laborejo.org/lss/pynsm/src/branch/master/minimalClients/base.py lss/pynsm PyNSMClient] - A New Session Manager Client-Library in one file.
* [http://home.gna.org/zynjacku/ 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.
 
  
  
* [http://drobilla.net/software/jalv/ 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.
+
* https://github.com/newlaurent62/rayZ-builder -  Tool to create wizards and fill ray session templates
** https://github.com/brummer10/jalv_select - little app to select lv2 plugs for run with jalv
 
jalv.qt5 http://drumkv1.sourceforge.net/lv2
 
  
  
* [http://openmusickontrollers.github.io/lv2/synthpod/ 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.
+
==== new-session-manager ====
** https://github.com/OpenMusicKontrollers/synthpod
+
* https://github.com/linuxaudio/new-session-manager - a tool to assist music production by grouping standalone programs into sessions. Your workflow becomes easy to manage, robust and fast by leveraging the full potential of cooperative applications.It is a community version of the "NON Session Manager" and free in every sense of the word: free of cost, free to share and use, free of spyware or ads, free-and-open-source.
  
 +
==== RaySession ====
 +
* https://github.com/Houston4444/RaySession - a GNU/Linux session manager for audio programs as Ardour, Carla, QTractor, Non-Timeline, etc... It uses the same API as Non Session Manager, so programs compatible with NSM are also compatible with Ray Session. As Non Session Manager, the principle is to load together audio programs, then be able to save or close all documents together.
  
* [http://ll-plugins.nongnu.org/ 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.
+
==== Argodejo ====
 +
* [https://git.laborejo.org/lss/Argodejo Argodejo] - a music production session manager. It is used to start your programs, remember their (JACK) interconnections and make your life easier in general.You can seamlessly change between two view modes to quickly start a few programs or have complete control and a detailed overview.Argodejo does not re-invent the wheel but instead uses the New-Session-Manager daemon and enhances it with some tricks of its own, that always remain 100% compatible with the original sessions.This is a proof of concept version. It aims to show that session management with NSM can be quick and convenient and make the user feel in control. Some functionality has not yet been implemented, most prominently anything related to NSM over network. There is always the possibility to break things when trying out corner cases and hacks.That said, for single-computer sessions with just one daemon and one GUI at the same time Argodejo should provide a good user experience.
  
  
* [https://github.com/moddevices/mod-host mod-host] is an LV2 host for JACK, controllable via socket or command line
+
==== Stagepatch ====
 +
* https://github.com/ViktorNova/stagepatch - nsm-git fork. Persistent audio and MIDI patchbay daemon for NSM, which auto-connects remembered devices when they reappear. Based on aj-snapshot
  
== DAW ==
 
Digital Audio Workstation
 
  
* https://en.wikipedia.org/wiki/Digital_audio_workstation
+
==== Gonzo ====
 +
* https://github.com/scgolang/gonzo - Command line nsm server. I started this project out of frustration with trying to write nsm clients.
  
* [https://docs.google.com/spreadsheets/d/1n6MaGigGGTgFvoqBCMgt-GuSmy8nqAUfF8ryL4nJbS8/edit#gid=0 Linux Digital Audio and Music Workstation Comparison Matrix] - collaborative Google Spreadsheet
+
* https://github.com/scgolang/nsm - Non session manager OSC protocol implemented in Go
  
=== Ardour ===
+
=== MonoMultiJack ===
* [http://ardour.org Ardour] - a professional tool for working with audio and MIDI.
+
* [http://ix.residuum.org/desktop/monomultijack.html 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.
** http://en.wikipedia.org/wiki/Ardour_(software)
 
  
* [http://manual.ardour.org/toc The Ardour Manual]
 
  
* [http://brunoruviaro.github.io/ardour4-tutorial/tags Ardour 4 Beginners Tutorial: Table of Contents]
+
=== JackLinx ===
 +
* [https://web.archive.org/web/20160309135320/http://jacklinx.nl/ JackLinx] - Simple Session Manager for the Music Classroom.
 +
** https://github.com/felison/JackLinx - dead?
  
==== Extra ====
+
Preselected applications.
* [http://x42.github.io/harvid harvid] - HTTP Ardour Video Daemon, decodes still images from movie files and serves them via HTTP.
 
  
=== Qtractor ===
+
* https://issuu.com/felison/docs/jacklinx-manual-131212-1218
* [http://qtractor.sourceforge.net/ 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.
 
** http://en.wikipedia.org/wiki/Qtractor
 
  
* YouTube: [https://www.youtube.com/playlist?list=PLBvCHJWi9SXzxIvlkjBtRGTqQ9yyihyrz Why, Phil?] - Yassin Philip's Free Open Source Studio
 
  
=== REAPER ===
+
=== chino ===
* [http://reaper.fm/ REAPER] - digital audio workstation software: a complete multitrack audio and MIDI recording, editing, processing, mixing, and mastering environment. Nagware. No LV" support yet.
+
* [http://chino.tuxfamily.org/ 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.
 +
** http://chino.tuxfamily.org/documentation/
  
 +
chino -n newproject
 +
  # start newproject in current directory
 +
 +
chino -o existingproject
 +
  # open existingproject
  
* https://wiki.cockos.com/wiki/index.php/REAPER_for_Linux
 
  
* http://www.landoleet.org/dev - native Linux downloads
+
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.
** https://www.landoleet.org/whatsnew5.txt
 
  
 +
== Routing ==
  
* https://www.helgoboss.org/projects/playtime - clip launcher, Ableton-like, in a floating window. Windows/Mac only :'(
+
=== Catia ===
 +
* [http://kxstudio.linuxaudio.org/Applications:Catia Catia] - a simple JACK Patchbay, with some neat features like A2J bridge support and JACK Transport.It was initially part of the Cadence project, but now lives on its own.
 +
** https://github.com/falkTX/Catia
  
* YouTube: [https://www.youtube.com/watch?v=45o-PbWe-VU Playtime Plugin For REAPER Demo]
+
=== Patchage ===
 +
* [http://drobilla.net/software/patchage/ Patchage] is a modular patch bay for audio and MIDI systems based on Jack and Alsa.
  
  
* YouTube: [https://www.youtube.com/watch?v=Vrab-2tYJUU Tekel - "Home" Ambient Dub, Reaper Jam]
+
=== Patchmatrix ===
 +
* https://github.com/OpenMusicKontrollers/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.
  
* https://www.youtube.com/watch?v=24P_oRjKSUo
+
=== QJackConnect ===
 +
* [http://users.suse.com/~mana/jack.html QJackConnect] - a QT based patchbay for the JACK Audio Connection Kit.
  
 +
=== Patchichi ===
 +
* https://github.com/Houston4444/Patchichi Houston4444/Patchich - an abstract JACK patchbay GUI for GNU/Linux systems, but it could be adapted to Mac and Windows with little effort. The software it most closely resembles is probably Catarina, from the Cadence suite.
  
* 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.
+
=== rofi-jack ===
 +
* https://github.com/madskjeldgaard/rofi-jack - Keyboard centric jack audio management using the rofi app launcher
  
* https://github.com/RobU23/ReaScripts - Lua scripts for REAPER
+
=== jsweeper ===
 +
* [https://fuzzle.org/~petern/jsweeper.html 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.
 +
** http://git.fuzzle.org/jsweeper.git/
  
 +
=== njconnect ===
 +
* [http://sourceforge.net/projects/njconnect/ njconnect] - Curses Jack connection manager
  
==== SWS / S&M ====
+
=== CliConnect ===
* The [http://www.sws-extension.org 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.
+
* [http://openavproductions.com/cliconnect/ CliConnect] is a minimal terminal based JACK connection manager. Why is that useful? For using over SSH mostly.
** http://www.sws-extension.org/whatsnew.php
+
** https://github.com/harryhaaren/openAV-cliconnect
  
* PDF: [http://sws-extension.org/download/REAPERPlusSWS171.pdf Installation & the Basics (Reaper Advanced - The SWS Extensions)]
+
=== esjit ===
 +
* [https://bbs.archlinux.org/viewtopic.php?id=104897 esjit] - a text-mode JACK audio connection manager. not in AUR anymore.
 +
** https://github.com/lotuskip/esjit - dead?
  
==== JSFX ====
+
=== qpwgraph ===
* https://github.com/justinfrankel/super8 - An 8 channel, MIDI controlled synchronized audio looper for JSFX
+
* https://gitlab.freedesktop.org/rncbc/qpwgraph - PipeWire Graph Qt GUI Interface
  
 +
=== Routing snapshots ===
 +
==== aj-snapshot ====
 +
* [http://aj-snapshot.sourceforge.net/ 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.
  
* https://github.com/jtackaberry/reascripts
+
aj-snapshot filename
 +
  # make a snapshot
 +
 +
aj-snapshot -r filename
 +
  # restore a snapshot
 +
 +
aj-snapshot -d filename &
 +
  # run in daemon mode
  
==== Other ====
 
  
* https://github.com/noedigcode/gidPatches-for-Reaper - Switch between different patches for live keyboard playing using Reaper.
+
* [http://lsn.ponderworthy.com/doku.php/robust_session_management 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
** https://noedigcode.github.io/gidPatches-for-Reaper/
 
  
=== LMMS ===
 
* [http://lmms.sourceforge.net/ 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.
 
** http://en.wikipedia.org/wiki/LMMS
 
  
* [https://www.youtube.com/watch?v=4dYxV3tqTUc LMMS Tutorial 1: Piano Roll, Beat/Bass Line Editor]
+
==== autocable ====
 +
* https://github.com/resinbeard/autocable - A tiny C application that loads a text file and routes Jack audio connections for you.
  
No lv2 support. [https://github.com/LMMS/lmms/issues/562]
+
echo "connect system:capture_1 system:playback_1
 +
> disconnect system:capture_2 system:playback_2" | ./autocable
  
 +
./autocable yourdirectory/textfile.ac
  
=== Tracktion T6 ===
 
* [https://www.tracktion.com/products/t6-daw 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 ===
+
* [https://llllllll.co/t/beginning-a-gnu-linux-jack-headless-performance-system/1119 Beginning a GNU/Linux/JACK headless performance system] - with autocable and qjackctl for visual demonstration
* [http://www.muse-sequencer.org MusE] - 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.
 
** https://github.com/muse-sequencer/muse/
 
** http://en.wikipedia.org/wiki/MusE
 
  
To use a softsynth:
+
==== JMess ====
# MusE Settings menu
+
* 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.
# Midi Ports / Soft Synth
 
# Add synth instance
 
# Switch midi send on track to synth instance
 
  
=== Rosegarden ===
+
jmess -s filename.xml
* [http://www.rosegardenmusic.com Rosegarden] - a well-rounded audio and MIDI sequencer, score editor, and general-purpose music composition and editing environment.
+
  # save
** http://en.wikipedia.org/wiki/Rosegarden
+
 +
jmess -c filename.xml
 +
  # load
 +
 +
jmess -d -c filename.xml
 +
  # disconnect all then load
 +
 +
jmess -d
 +
  # disconnect all
  
No lv2 support. [https://sourceforge.net/p/rosegarden/feature-requests/462/]
+
==== jack_snapshot ====
 +
* [https://sourceforge.net/projects/heaven/files/Audio%20Applications/Jack%20Related/jack_snapshot/ jack_snapshot] - a little tool for storing/restoring jack connection states. it does this by writing/reading the names of the connected ports into/from a simple textfile. and here is also one weakness: some jack clients don't use the same jack name on each run, but dynamically assign one [like meterbridge] but most of them can be told to use a specific name, so this isn't really a problem. at least not for me. some pattern matching might be added in the future..
  
=== Open Octave Midi ===
+
==== jack-plumbing ====
* [https://web.archive.org/web/20161020203801/http://www.openoctave.org/ 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.
+
* [http://rd.slavepianos.org/?t=rju&e=jack-plumbing.ad 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.
** https://github.com/ccherrett/oom
 
  
=== Libre Octave Studio ===
+
==== jack-matchmaker ====
* [https://github.com/falkTX/los 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.
+
* https://github.com/SpotlightKid/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_autoconnect ====
 +
* https://github.com/kripton/jack_autoconnect - Tiny application that reacts on port registrations by clients and connects them. The port names are interpreted as regular expressions and more than one pair can be defined upon calling.
  
=== Traverso DAW ===
+
==== Jack Sanity ====
* [http://traverso-daw.org/ Traverso DAW] - 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!
+
* [http://nbsp.io/jack-sanity Jack Sanity] - A scriptable environment using '''JavaScript''' for controlling jackdbus clients.
** [https://web.archive.org/web/20140702031706/http://www.traverso-daw.org/ Older homepage] - more content
+
** https://github.com/psychoticmeow/jack-sanity
** https://en.wikipedia.org/wiki/Traverso_DAW
 
** http://traverso-daw.org/tutorial/
 
** https://github.com/ErwanLegrand/Traverso-DAW - old fork?
 
  
Slow development, minimal documentation/website.
+
==== jacklistener etc. ====
 +
* https://github.com/gentoo-root/jacklistener
  
 +
* https://github.com/gentoo-root/jacknotifier
  
=== LNX_Studio ===
+
* https://github.com/gentoo-root/jackeventcmd
* [http://lnxstudio.sourceforge.net/ LNX_Studio] - a Digital Audio Work Station for Mac and Linux created in the SuperCollider language. It has a powerful set of tools for creating music, all of which can be networked. Co-location gigs or real-time collaborations don't have to be in the same room.
 
** https://github.com/neilcosgrove/LNX_Studio
 
** https://github.com/neilcosgrove/LNX_Studio/blob/xplat/README_linux.md
 
  
* http://linux-sound.org/images/lnxstudio-big.png
 
  
* http://createdigitalmusic.com/2016/04/a-totally-free-daw-and-live-environment-built-in-supercollider-lnx_studio/
+
==== patchy ====
 +
* https://github.com/dedelala/patchy - store and recall jack audio port connections. Written in Go.
  
 +
=== ASTRUX ===
 +
* [http://rmouneyres.free.fr/software.html#astrux ASTRUX] - A setup creation tool for live-oriented musicians (under active development by Raphaël Mouneyres)
 +
** https://github.com/jerash/astrux
  
 +
=== combaud ===
 +
* https://github.com/VHSgunzo/combaud - Broadcasting audio output from applications to a virtual microphone.
  
=== Frinika ===
+
== Timing ==
* [http://www.frinika.com/ 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.
+
=== JACK Transport / Timebase ===
** http://sourceforge.net/projects/frinika
+
* [http://jackaudio.org/files/docs/html/transport-design.html 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>
  
Java, interface can be somewhat janky..
+
* [https://jackaudio.org/api/group__TransportControl.html JACK-AUDIO-CONNECTION-KIT: Transport and Timebase control]
  
=== MusiKernel ===
+
* https://github.com/jackaudio/jack2/blob/develop/common/jack/types.h#L554
* [https://github.com/j3ffhubb/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.
+
* https://github.com/jackaudio/jackaudio.github.com/wiki/JACK-Transport-limitations
  
Mids: Can only use own plugins, makes it fast.
 
  
Cons: UI could do with some polishing.
+
Timebase master relates to the musical/metronomic information being delivered to other JACK clients (tempo, bar, beat, ticks, time-sig. etc.).
  
* https://www.youtube.com/channel/UCf_PgsosvLpxkN6bff9NESA/videos
+
Transport modes relate to linear playback location sync and state (stopped vs. rolling). [https://www.rncbc.org/drupal/comment/6632]
 
 
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 ===
 
* [http://non.tuxfamily.org/ 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..
 
 
 
* http://libremusicproduction.com/tutorials/modular-set-ups-concepts-and-practices-using-non-session-manager
 
  
 +
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'.
  
* http://non.tuxfamily.org/wiki/Non%20Session%20Manager
+
echo play |jack_transport
 +
  # pass command to execute
 +
  # tempo change doesn't work via this method
  
Non-intuitive - e.g. one has to manually type in other Non application commands to link them to a track session.
 
  
* http://non.tuxfamily.org/wiki/Non%20DAW
+
* [https://gist.github.com/SpotlightKid/51805ad2c6c93e3661e1ca4befda4fc8 timebase.py] - Query and manipulate JACK transport state and provide timebase information using jackclient-python
  
Menus close when you click on them, argh.
 
  
On start, must create an actual project (Project/New) to add tracks.
+
* [http://toxic.cubicarea.it/jack-director JackDirector] - 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.
  
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.
+
* [http://gjacktransport.sourceforge.net 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.
  
No master track, must be created and routed manually.
 
 
* http://non.tuxfamily.org/wiki/Non%20Mixer
 
  
Channel strips needs to be manually (and externally) routed with other Non apps.....
+
* [http://freecode.com/projects/cabestan 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.
  
* http://non.tuxfamily.org/wiki/Non%20Timeline
 
  
* http://non.tuxfamily.org/wiki/Non%20Sequencer
+
* [http://rd.slavepianos.org/?t=rju&e=jack-transport.ad jack-transport] is a minimalist Jack transport control interface using ncurses. It displays the transport state and current time, and provides standard operating keys.
  
Laggy, clunky..
 
  
=== OTTO ===
+
* [http://jackctlmmc.sourceforge.net/ 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.
* 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.
 
  
 +
* https://gitlab.com/Largos/jack-transport-for-plasma - A Python application with a QML GUI for using with Jack Transport. The GUI integrates with Plasma and uses the theming.
  
=== Web ===
 
==== Audiotool ====
 
* [http://www.audiotool.com/ 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 ====
 
* [http://www.kreatives.org/kristal/index.php?section=details 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 ====
+
* https://github.com/ycollet/qtmiditrans - A Jack midi filter which translates midi events into jack transport (stop / play)
* https://zynewave.com/podium-free/
 
  
==== MuLab Free ====
 
* http://www.mutools.com/mulab-product.html
 
** http://www.mutools.com/info/docs/mulab/mulab-versions.html
 
  
==== Ohm Studio ====
+
* [http://rd.slavepianos.org/?t=rju&e=jack-osc.ad 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.
* https://www.ohmstudio.com
 
  
=== Commercial ===
 
==== Bitwig ====
 
* http://www.bitwig.com/en/bitwig-studio - $, good! includes clip launcher like Ableton. in-built modular synthesis system.
 
  
==== Tracktion T7 ====
+
* [http://www.teuton.org/~gabriel/InConcert/ 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.
* [https://www.tracktion.com/products/t7-daw 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.
 
  
 +
Doesn't work??
  
==== Ableton Live ====
 
* [https://www.youtube.com/watch?v=tKZvepM2xjI Organizing Clips into Scenes in Ableton Live] - non-Linux
 
  
==== Maschine ====
+
* [http://www.arnoldarts.de/projects/tapstart 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.
* Native Instruments: [https://www.native-instruments.com/en/products/maschine/maschine-accessories/maschine-2.0-software-update/ Maschine 2.0]
+
** https://github.com/kampfschlaefer/tapstart
  
  
* YouTube: [https://www.youtube.com/watch?v=aohwK41IdBo Maschine 2.6.5 Update Tutorial - New Ideas Mode and more!]
+
* [https://sourceforge.net/projects/jack-trans2midi/ jack-trans2midi] - a utility that converts jack transport into midi clock messages
  
=== Harrison Mixbus ===
 
* [http://harrisonconsoles.com/site/mixbus.html Harrison Mixbus]
 
  
Based on Ardour.
+
* https://github.com/harryhaaren/AutoMate - An automation editor, which uses (or will use) JACK MIDI output and JACK Transport to sync to the beat.
  
==== n-Track ====
 
* [http://en.ntrack.com 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 - $
+
* [http://danmbox.github.io/jack-file/ jack-file] - Jack transport-centric utilities for audio playback
 +
** https://github.com/danmbox/jack-file
  
* https://play.google.com/store/apps/details?id=com.ntrack.studio.demo
+
=== Ableton Link ===
 +
* [https://www.ableton.com/en/link/ Ableton Link] - a technology that keeps devices in time over a local network, so you can forget the hassle of setting up and focus on playing music. Link is now part of Live, and also comes as a built-in feature of other software and hardware for music making.
 +
** [https://ableton.github.io/link/ Link Documentation | Ableton]
  
==== Usine ====
+
* https://github.com/Ableton/link - codebase for Ableton Link, a technology that synchronizes musical beat, tempo, and phase across multiple applications running on one or more devices. Applications on devices connected to a local network discover each other automatically and form a musical session in which each participant can perform independently: anyone can start or stop while still staying in time. Anyone can change the tempo, the others will follow. Anyone can join or leave without disrupting the session.
* [http://www.sensomusic.org/ 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 ====
 
* [https://www.cantabilesoftware.com 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 ====
 
* [http://www.mutools.com/mulab-product.html 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 ====
+
* [https://media.ccc.de/v/lac2018-42-ableton_link_a_technology_to_synchronize_music_software/playlist media.ccc.de - Playlist for "Linux Audio Conference 2018"]
* [https://www.fxpansion.com/products/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 ====
 
* [http://genesisdaw.org/ 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.
 
** https://github.com/andrewrk/genesis
 
  
==== produce ====
+
* https://github.com/ak5k/reablink - REAPER plug-in extension providing ReaScript bindings for Ableton Link session, and Ableton Link Test Plan compliant implementations for REAPER.  
* 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 ====
+
* https://github.com/rncbc/jack_link - a JACK transport timebase prototype bridge to Ableton Link.
* [http://protux.sourceforge.net/ 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.
+
** https://www.ableton.com/en/link/
  
 +
* https://github.com/x37v/jack_transport_link - A service that bridges Ableton's Link to and from Jack Transport, allowing applications that use Jack Transport to synchronize their timing with other applications that support Link.
  
Last development was in 2009.
 
  
==== Wired ====
 
* [https://sourceforge.net/projects/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.
+
* https://github.com/falkTX/Hylia - Host transport library for Ableton Link
  
  
==== Ayyi ====
+
* https://github.com/Deep-Symmetry/carabiner - A loose connector for interacting with Ableton Link. Carabiner is a program that embeds the C++ Link library and listens for local TCP connections to allow other programs, like beat-link-trigger and Afterglow, to participate in some aspects of a Link session, even though they were not written using C++ compatible languages and runtimes.
* http://ayyi.org - There is currently one main gui application using Ayyi, AyyiGtk, which aims to be a conventional audio/midi sequencer. Ayyi is a Linux libardour based modular audio production system.
 
** http://ayyi.org/ayyigtk.html
 
** http://ayyi.org/download.html
 
  
Very alpha.
 
  
== Mixers ==
 
=== Command-line ===
 
* [http://alsa.opensrc.org/Amixer amixer] - a command-line program for controlling the mixer in the ALSA soundcard driver. amixer supports multiple soundcards
 
  
[http://linux.die.net/man/1/amixer amixer] -c 0 | pcregrep "control"
+
* https://github.com/gonzaloflirt/link-python - Python wrapper for Ableton Link
  # shows all audio channels
 
  
 +
* https://github.com/bdyetton/LinkToPy - A python module for interfacing with Ableton Link.
  
* [https://www.aelius.com/njh/jackminimix/ 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/magdaddy/ableton-link-rs -  Rust bindings for Ableton Link
** https://github.com/njh/jackminimix/
 
  
  
* 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.
 
  
 +
* https://github.com/ianacaburian/AbletonLink_JuceSampler -  Simple tutorial on how to build JUCE projects with tempo synchronization by Ableton Link
  
* https://github.com/MaurizioB/jack_switch - Simple jack client to switch outputs from any input client
 
  
=== ncurses ===
 
* http://alsa.opensrc.org/Alsamixer
 
** https://en.wikipedia.org/wiki/Alsamixer
 
  
* http://jpj.net/~trevor/aumix.html
+
* https://github.com/libpd/abl_link -  Ableton Link integration for Pure Data on desktop and Android.
  
=== Graphical ===
+
* https://github.com/2bbb/node-abletonlink - node.js port of ableton Link with node-addon-api
* [http://xwmw.org/qastools/applications/qasmixer.html QasMixer] is a desktop mixer application for ALSA's "Simple Mixer Interface".
 
  
* [http://xwmw.org/qastools/applications/qashctl.html QasHctl] is a mixer for ALSA's more complex "High level Control Interface".
+
* https://github.com/comoc/UnityAbletonLinkKit
  
* [https://www.kde.org/applications/multimedia/kmix/ 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
+
=== Pioneer DJ Link ===
 +
See also [[DJing]]
  
* https://github.com/gen2brain/volti - an GTK+ application for controlling ALSA volume from system tray/notification area.
+
* https://github.com/g-zi/CDJ_Clock -missing link between Pioneers Pro DJ Link and Ableton Live. CDJ Clock generates MIDI beat clock from Pioneers Pro DJ Link. With CDJ Clock anything what understands MIDI Beat Clock can be synced to Pioneer CDJs.  
  
  
* [http://non.tuxfamily.org/wiki/index.php?page=Non%20Mixer Non Mixer]
 
** [http://non.tuxfamily.org/mixer/doc/MANUAL.html non-mixer manual]
 
** http://non.tuxfamily.org/wiki/UsingMidiWithNon - doesn't handle MIDI directly, requires CV or OSC conversion
 
  
/strip/[STRIP_NAME]/[MODULE_NAME]/[PARAMETER_NAME]
+
* https://github.com/Deep-Symmetry/beat-link - A Java library for synchronizing with beats from Pioneer DJ Link equipment, and finding out details about the tracks that are playing.
 +
** [https://djtechtools.com/2017/07/19/decoding-pioneer-pro-link-connect-cdjs-ableton-link/ Decoding Pioneer Pro Link: Connect CDJs To Ableton Link - DJ TechTools]
  
See also [https://github.com/original-male/non/blob/60059f40054db40a77754670cdae2e9517df3568/mixer/src/midi-mapper.C non-midi-mapper] [https://github.com/original-male/non/issues/106]
 
  
 +
* https://github.com/Deep-Symmetry/beat-link-trigger - Trigger events and automate shows in response to events on Pioneer CDJs
 +
** https://blt-guide.deepsymmetry.org
  
* [http://home.gna.org/jackmixer/ 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.
 
  
 +
* https://github.com/Deep-Symmetry/open-beat-control - Provides a subset of beat-link features over Open Sound Control.
  
* [http://69b.org/cms/software/jackmaster JackMaster] - "Master Console" for the jack-audio-connection-kit. no aux sends/returns.
 
  
* [http://www.arnoldarts.de/jackmix/ JackMix] - Matrix Mixer with dials for Jack. Not quite MIDI controllable.
+
* https://github.com/Deep-Symmetry/beat-carabiner - A minimal tempo bridge between Pioneer Pro DJ Link and Ableton Link.
** https://github.com/kampfschlaefer/jackmix
 
  
* [https://sourceforge.net/projects/jackmixdesk 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/Deep-Symmetry/dysentery - Exploring ways to participate in a Pioneer Pro DJ Link network.
  
 +
=== Calculation ===
 +
* [http://www.qrest.org/ 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)
 +
 +
 +
* [https://www.brianhilmers.com/projects/rasp/ 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)
  
* https://github.com/x42/xfade.lv2 - an audio-plugin for stereo cross-fading 2 x 2 input channels to 2 output channels.
 
  
* 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.
+
=== Metronomes ===
  
* [https://www.kvraudio.com/product/kn0ck0ut-by-st3pan0va 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.
+
* https://rosettacode.org/wiki/Metronome
** YouTube: [https://www.youtube.com/watch?v=tKqbaEzZFy8 KnOckOut by St3pan0va]
 
  
* https://github.com/jeremysalwen/kn0ck0ut-LV2 - Port of kn0ck0ut to LV2 plugin
 
  
* https://github.com/kyleneideck/BackgroundMusic - Mac [https://news.ycombinator.com/item?id=11514281]
+
==== kmetronome ====
 +
* [http://kmetronome.sourceforge.net/kaseq/kmetronome.shtml 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
  
 +
==== TICK ====
 +
* https://github.com/talaviram/TICK - tailored made to make a small portable Metronome plug-in. It can also work in standalone mode, meaning it can have agnostic time to the host itself.
  
* https://github.com/sonejostudios/LiveFader - LiveFader is a very simple stereo passive volume fader
+
==== ametro ====
 +
* [http://perso.wanadoo.es/plcl/ametro/ametro-en.html ametro] - a little, simple MIDI Metronome using the ALSA sequencer.
 +
** https://github.com/rabramley/linux_midi_commands
 +
** No decimal BPM
  
* https://github.com/sonejostudios/StereoKnot - Simple Stereo Through with Volume Slider
+
==== klick ====
 +
* [http://das.nasophon.de/klick/ klick] is an advanced command-line based metronome for JACK. It allows you to define complex tempo maps for entire songs or performances.
  
* https://github.com/sonejostudios/AudioThrough16 - very simple 16-channel audio through
+
JACK transport connect but not driven by it? BPM argument required, doesn't change when transport master runs.
  
* https://github.com/sonejostudios/StereoSwitch - A simple Stereo Switch (send stereo signal to output A or to output B)
+
* [http://das.nasophon.de/gtklick/ gtklick] - a GTK frontend to klick. It's written in Python and communicates with klick via OSC.
  
* https://github.com/sonejostudios/ABswitchStereo - Stereo source comparison tool.
+
klick -o 12345 60 &
 +
gtklick -q osc.udp://localhost:12345
  
 +
* https://github.com/jean-emmanuel/kleek - Simple klick cli wrapper to setup training patterns faster
  
* https://github.com/sonejostudios/LiveMixer - Stereo Mixer Strip with 2 Aux Sends (post Fader)
+
* https://github.com/MaurizioB/klickui
  
* https://github.com/sonejostudios/XYMatrix - XY Surround Matrix for one Source (Mono Input) with 4 Outputs (Left, Right, Surround Left, Surround Right) and Position Lock.
+
* https://github.com/sonejostudios/klick2wav - a GUI for the export function of Klick.
  
 +
==== Polygnome ====
 +
* [http://sourceforge.net/projects/polygnome/ Polygnome] - A polyrhythmic metronome in GTK+. Supports ALSA and JACK audio backends.
 +
** https://gitlab.com/tmatth/polygnome
 +
** Audio only, no MIDI
  
* https://github.com/johnflynnjohnflynn/BalanceGain - Stepped gain audio plugin for Balance Mastering
+
==== GTick ====
 +
* [http://www.antcom.de/gtick/ GTick] - 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).
 +
** https://github.com/yoyonel/gtick
 +
** Audio only, no MIDI
  
* https://github.com/johnflynnjohnflynn/BalanceWidth - Stepped stereo width plugin for Balance Mastering
+
* https://github.com/Barabas5532/gtick-guitar - GNU gtick metronome with quick tempo increment control
  
 +
==== Hubcap ====
 +
* [http://www.jezra.net/projects/hubcap Hubcap] - a fairly simple metronome *nix app with a tempo fader and both auditory and visual feedback on a beat.
 +
** Audio only, no MIDI
  
* [http://x42-plugins.com/x42/x42-mixtrix mixtri(x)] - a matrix mixer and trigger processor intended to be used with the oscilloscope, but also useful for other applications.
+
==== Accelerando ====
** https://github.com/x42/mixtri.lv2
+
* [http://www.lightandmatter.com/accelerando/ Accelerando] - 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.
 +
** https://github.com/bcrowell/accelerando
 +
** Audio only, no MIDI
  
 +
==== jmetro ====
 +
* https://github.com/jmage619/jmetro - A dumb linux based Jack metronome with Qt based UI
  
* [http://kokkinizita.linuxaudio.org/linuxaudio/zita-mu1-doc/quickguide.html 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.
+
==== midiclick ====
 +
* [http://www.pjb.com.au/midi/midiclick.html midiclick] - generates a metronome click-track on MIDI channel 9
 +
** http://www.pjb.com.au/midi/free/midiclick
 +
** ALSA MIDI, no audio
  
=== Effect ===
+
==== ctronome ====
* [https://delamanchavst.wordpress.com/2013/10/24/faderratic 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.
+
* [http://ctronome.kign.org/ ctronome] - a very simple yet powerful ;) programmable console metronome software.
 +
** OSS Audio only, no MIDI
  
== Timing ==
+
==== Click Tracker ====
=== JACK Transport ===
+
* [https://jmmmp.github.io/clicktracker 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.
* [http://jackaudio.org/files/docs/html/transport-design.html 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>
 
  
* https://github.com/jackaudio/jackaudio.github.com/wiki/TransportLimitations
+
==== clicktrack ====
 +
* https://github.com/schollz/clicktrack - Generate a click track from pretty much any computer.
  
 +
==== Metronome ====
 +
* https://github.com/witte/Metronome - A simple metronome made with Qt and Juce
  
jack_transport> ?
+
==== Visual metronomes ====
  activate Call jack_activate().
+
===== JVMetro =====
  exit Exit transport program.
+
* [http://jvmetro.sourceforge.net/ JVMetro] - provides a colorful, realtime visual indication of the passage of bars and beats on the Jack transport--without generating any sound of its own.
  deactivate Call jack_deactivate().
+
** https://github.com/original-male/jvmetro
  help Display help text [<command>].
+
 
  locate Locate to frame <position>.
+
===== vimebac =====
  master Become timebase master [<conditionally>].
+
* https://gitlab.com/smondet/vimebac - graphical metronome and instructions display that interfaces with JACK-midi applications. The display can be completely driven by MIDI events and it can also send MIDI events. It can also be self-driven and hence run without jackd although this is somewhat less interesting since it becomes just a visual metronome.
  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
+
===== BeatViz =====
  # pass command to execute
+
* https://github.com/kunstmusik/BeatViz - shows a 4x4 grid that represents additive groupings of beats. (Beat here meaning a single atomic tick, equal to a 16th note within the author's Csound Live Code system. UDP controlled.
  # tempo change doesn't work via this method
 
  
 +
===== Nevena's Metronome =====
 +
* [http://nevenametronome.sourceforge.net/ Nevena's Metronome] - a metronome program with Qt GUI. Besides just being beautiful, and working under X11, Windows, and Mac, it has some advanced features, for example it can count to you or act as a stroboscope.
 +
** https://sourceforge.net/projects/nevenametronome
  
* [http://toxic.cubicarea.it/jack-director 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.
+
===== ticker =====
 +
* https://github.com/medakk/ticker - An ncurses based Visual Metronome designed in C++
  
 +
==== Web metronomes ====
 +
* [http://bestmetronome.com/ BestMetronome.com] - web and mobile app metronomes
 +
** [http://a.bestmetronome.com/ Highly accessible version of metronome]
  
* [http://gjacktransport.sourceforge.net/ 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.
 
  
* [http://freecode.com/projects/cabestan 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.
+
* Chrome Web Store: [https://chrome.google.com/webstore/detail/dr-beat/dkjgoodkdebpicmofjeddinkdpaalcbh Dr. Beat] - developed as a part of the HackTime (http://goo.gl/SscNs) project from GDG Chrome Korea. It's a metro style metronome app. It helps you to keep the beats.
  
* [http://rd.slavepianos.org/?t=rju&e=jack-transport.ad jack-transport] is a minimalist Jack transport control interface using ncurses. It displays the transport state and current time, and provides standard operating keys.
+
==== Windows ====
 +
* [http://openmetronome.sourceforge.net/ 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;
 +
** based on http://www.weirdmetronome.com/
  
  
* [http://jackctlmmc.sourceforge.net/ 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.
+
* http://bouncemetronome.com - Windows/Wine- $
  
 +
=== EspGrid ===
 +
* [https://dktr0.github.io/EspGrid/ EspGrid] - an OSC based software system to streamline the sharing of timing, beats and code in electronic ensembles, from duos and trios through larger laptop orchestras to globally distributed ensembles. A number of features distinguish EspGrid from most other systems: a collection of different algorithms to estimate time differences are included, and can be selected on the fly it is a freestanding application, not built on top of or dependent upon, common audio programming environments (this means that if you change or crash your audio programming environment nothing changes for your collaborators) a rudimentary "bridge" system allows the construction of ensembles spanning multiple networks (for example: two laptop orchestras, each connected locally with a router/switch but connected to each other over the Internet)
 +
** https://github.com/dktr0/EspGrid
  
* [http://rd.slavepianos.org/?t=rju&e=jack-osc.ad 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.
+
== Networked ==
 +
See also [[Streaming#Audio]], [[Networked media]]
  
 +
=== AoIP ===
 +
* https://en.wikipedia.org/wiki/Audio_over_IP
  
* [http://www.teuton.org/~gabriel/InConcert/ 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.
+
=== AoE ===
 +
* https://en.wikipedia.org/wiki/Audio_over_Ethernet - the use of an Ethernet-based network to distribute real-time digital audio. AoE replaces bulky snake cables or audio-specific installed low-voltage wiring with standard network structured cabling in a facility. AoE provides a reliable backbone for any audio application, such as for large-scale sound reinforcement in stadiums, airports and convention centers, multiple studios or stages.  
  
Doesn't work??
+
While AoE bears a resemblance to voice over IP (VoIP) and audio over IP (AoIP), AoE is intended for high-fidelity, low-latency professional audio. Because of the fidelity and latency constraints, AoE systems generally do not utilize audio data compression. AoE systems use a much higher bit rate (typically 1 Mbit/s per channel) and much lower latency (typically less than 10 milliseconds) than VoIP. AoE requires a high-performance network. Performance requirements may be met through use of a dedicated local area network (LAN) or virtual LAN (VLAN), overprovisioning or quality of service features. Some AoE systems use proprietary protocols (at the higher OSI layers) which create Ethernet frames that are transmitted directly onto the Ethernet (layer 2) for efficiency and reduced overhead. The word clock may be provided by broadcast packets.
  
  
* [http://www.arnoldarts.de/projects/tapstart 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.
+
* https://en.wikipedia.org/wiki/Comparison_of_audio_network_protocols
** https://github.com/kampfschlaefer/tapstart
 
  
* [https://sourceforge.net/projects/jack-trans2midi/ jack-trans2midi] - a utility that converts jack transport into midi clock messages
 
  
 +
See also [[Networking#ISDN]]
  
* https://github.com/harryhaaren/AutoMate - An automation editor, which uses (or will use) JACK MIDI output and JACK Transport to sync to the beat.
+
* https://github.com/omarcostahamido/awesome-networked-media#audio-networking
  
=== Ableton Link ===
+
=== mLAN ===
* https://github.com/rncbc/jack_link - a JACK transport timebase prototype bridge to Ableton Link.
+
* https://en.wikipedia.org/wiki/mLAN - short for Music Local Area Network, is a transport level protocol for synchronized transmission and management of multi-channel digital audio, video, control signals and multi-port MIDI over a network. The mLAN protocol was originally developed by Yamaha Corporation, and publicly introduced in January 2000. It was available under a royalty-free license to anyone interested in utilizing the technology. mLAN exploits several features of the IEEE 1394 (FireWire) standard such as isochronous transfer and intelligent connection management. There are two versions of the mLAN protocol. Version 1 requires S200 rate, while Version 2 requires S400 rate and supports synchronized streaming of digital audio at up to 24 bit word length and 192 kHz sample rate, MIDI and wordclock at a bitrate up to 400 Megabits per second. As of early 2008, mLAN appeared to have reached the end of its product life.
** https://www.ableton.com/en/link/
 
  
=== Metronomes ===
 
* [http://kmetronome.sourceforge.net/kaseq/kmetronome.shtml 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
 
  
* [http://perso.wanadoo.es/plcl/ametro/ametro-en.html ametro] - a little, simple MIDI Metronome using the ALSA sequencer.
+
* [http://web.archive.org/web/20071113161652/http://www.mlancentral.com/ mLAN Central] -"mLAN FireWire Music Networking is the enabling technology for creating an intelligent, managed local area music network using FireWire. mLAN not only carries multi-channel digital audio and MIDI over 1394 FireWire, it includes the connection management so you can easily manage your entire network."
** No decimal BPM, not MIDI driven
 
  
  
* [http://das.nasophon.de/klick/ klick] is an advanced command-line based metronome for JACK. It allows you to define complex tempo maps for entire songs or performances.
+
* [http://mlanalsa.sourceforge.net/ Linux ALSA-AMDTP Module]
  
JACK transport connect but not driven by it? BPM argument required, doesn't change when transport master runs.
+
=== AES67 ===
 +
* https://en.wikipedia.org/wiki/AES67 - a technical standard for audio over IP and audio over ethernet interoperability. The standard was developed by the Audio Engineering Society and first published in September 2013. It is a layer 3 protocol suite based on existing standards and is designed to allow interoperability between various IP-based audio networking systems such as RAVENNA, Livewire, Q-LAN and Dante. It also provides interoperability with layer 2 technologies, like Audio Video Bridging (AVB). AES67 promises interoperability between previously competing networked audio systems and long-term network interoperation between systems. Since its publication, AES67 has been implemented independently by several manufacturers and adopted by many others.  
  
* [http://das.nasophon.de/gtklick/ gtklick] - a GTK frontend to klick. It's written in Python and communicates with klick via OSC.
 
* https://github.com/MaurizioB/klickui
 
  
klick -o 12345 60 &
+
* [https://www.youraudiosystems.com/en/aes67-linux/ AES67 for Linux]
gtklick -q osc.udp://localhost:12345
 
  
  
 +
* https://github.com/bondagit/aes67-linux-daemon - with configuration WebUI
  
* [http://sourceforge.net/projects/polygnome/ Polygnome] - A polyrhythmic metronome in GTK+. Supports ALSA and JACK audio backends.
 
** Audio only, no MIDI
 
  
* [http://www.antcom.de/gtick/ 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).
+
* [https://www.merging.com/products/alsa_ravenna_aes67_driver Merging Technologies - Alsa Ravenna Aes67 Driver] - an ALSA Linux driver designed to provide high performance RAVENNA/AES67 support for the Linux ecosystems.Merging is strongly committed to foster the adoption of AES67 networking capability by making available a simple to integrate AES67 ALSA Linux driver with all required functionalities for Linux based OEMs to take advantage of this rapidly evolving market.
** https://github.com/yoyonel/gtick
+
** https://bitbucket.org/MergingTechnologies/ravenna-alsa-lkm/src
** Audio only, no MIDI
+
 
  
* [http://www.jezra.net/projects/hubcap Hubcap] is a fairly simple metronome *nix app with a tempo fader and both auditory and visual feedback on a beat.
+
* https://github.com/voc/aes67-recorder - A Linux/GStreamer-Based AES67 Multitrack Audio Backup Solution
** Audio only, no MIDI
 
  
* [http://www.lightandmatter.com/accelerando/ 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.
 
** https://github.com/bcrowell/accelerando
 
** Audio only, no MIDI
 
  
* https://github.com/rabramley/linux_midi_commands
+
* [https://www.vb-audio.com/Voicemeeter/vban.htm VB-Audio Network] - VBAN
** Very basic
+
** https://github.com/quiniouben/vban - VBAN protocol open-source implementation
** Audio only, no MIDI
 
  
* [http://ctronome.kign.org/ ctronome] - OSS audio only. a very simple yet powerful ;) programmable console metronome software.
+
=== AVB/TSN ===
** Audio only, no MIDI
 
  
 +
* https://en.wikipedia.org/wiki/Audio_Video_Bridging - a common name for the set of technical standards which provide improved synchronization, low-latency, and reliability for switched Ethernet networks. AVB embodies the following technologies and standards: IEEE 802.1AS-2011: Timing and Synchronization for Time-Sensitive Applications (gPTP); IEEE 802.1Qav-2009: Forwarding and Queuing for Time-Sensitive Streams (FQTSS); IEEE 802.1Qat-2010: Stream Reservation Protocol (SRP); IEEE 802.1BA-2011: Audio Video Bridging (AVB, Systems; IEEE 1722-2011 Layer 2 Transport Protocol for Time-Sensitive Applications (AV Transport Protocol, AVTP); and IEEE 1722.1-2013 Device Discovery, Enumeration, Connection Management and Control Protocol (AVDECC).
  
* [http://jvmetro.sourceforge.net/ JVMetro] - provides a colorful, realtime visual indication of the passage of bars and beats on the Jack transport--without generating any sound of its own.
 
** https://github.com/original-male/jvmetro
 
  
* https://sourceforge.net/p/nevenametronome - visual
+
* https://en.wikipedia.org/wiki/Time-Sensitive_Networking - a set of standards under development by the Time-Sensitive Networking task group of the IEEE 802.1 working group. The TSN task group was formed in November 2012 by renaming the existing Audio Video Bridging Task Group and continuing its work. The name changed as a result of the extension of the working area of the standardization group. The standards define mechanisms for the time-sensitive transmission of data over deterministic Ethernet networks. The majority of projects define extensions to the IEEE 802.1Q – Bridges and Bridged Networks, which describes virtual LANs and network switches. These extensions in particular address the transmission of very low transmission latency and high availability. Applications include converged networks with real-time audio/video streaming and real-time control streams which are used in automotive or industrial control facilities.
  
  
* [http://bestmetronome.com/ BestMetronome.com] - web and mobile app metronomes
 
** [http://a.bestmetronome.com/ Highly accessible version of metronome]
 
  
 +
* https://github.com/christophe-calmejane/Hive - a pro audio Avdecc (IEEE Std 1722.1) controller. Hive allows you to inspect, configure and connect AVB Entities on your network, specifically targeting AVnu Milan compatible devices (but not only).
  
* [http://openmetronome.sourceforge.net/ 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;
 
** based on http://www.weirdmetronome.com/
 
  
 +
* [https://media.ccc.de/v/sonoj2023-23006-avb-tsn media.ccc.de - Audio over Ethernet: AVB/TSN] - Sonoj 2023
  
* [https://jmmmp.github.io/clicktracker 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.
+
=== JACK ===
 +
==== Netjack ====
 +
* [http://netjack.sourceforge.net/ Netjack] - 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.
 +
** http://www.flujos.org/wiki/netjack/
  
=== Calculation ===
 
* [http://www.qrest.org/ 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)
 
  
 +
* https://github.com/elcorto/jackpod - Control a realtime netjack2 connection between two machines
  
* [https://www.brianhilmers.com/projects/rasp/ 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 ==
+
* LinuxMusicians: [https://linuxmusicians.com/viewtopic.php?f=19&t=21009 Setup Netjack2 with a crossover cable]
=== arecord ===
 
* http://alsa.opensrc.org/Arecord
 
 
  arecord -D hw:0 -f cd test.wav
 
  
=== audio-recorder ===
+
==== JackTrip ====
* https://launchpad.net/~audio-recorder
+
* [https://ccrma.stanford.edu/software/jacktrip/ JackTrip] - 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.
 +
** https://github.com/jcacerec/jacktrip
  
=== Ecasound ===
+
* https://github.com/noahbailey/jacktrip-docker -  Container for JackTrip network audio server
* [http://www.eca.cx/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.
 
  
  
* [https://freeshell.de/~bolangi/cgi1/nama.cgi/00home.html Nama] - manages multitrack recording, mixing and mastering using the Ecasound audio processing engine developed by Kai Vehmanen.
+
* https://github.com/noiseorchestra/autonomous-noise-unit - Python scripts for running JackTrip on an RPi with OLED screen and rotary switch interface.
  
 +
* https://github.com/noiseorchestra/jacktrip_pypatcher -  Python scripts to autopatch a JackTrip hubserver
  
* [http://das.nasophon.de/ecaplugin ecaplugin.py] - a tool to generate the unwieldy ecasound command lines for LADSPA and LV2 plugins from Ardour sessions or JACK Rack configurations.
+
==== Zita-njbridge ====
** https://github.com/dsacre/ecaplugin
+
* [https://kokkinizita.linuxaudio.org/linuxaudio Zita-njbridge] Command line Jack clients to transmit full quality multichannel audio over a local IP network, with adaptive resampling by the receiver(s). Zita-njbridge can be used for a one-to-one connection (using UDP) or in a one-to-many system (using multicast). Sender and receiver(s) can each have their own sample rate and period size, and no word clock sync between them is assumed. Up 64 channels can be transmitted, receivers can select any combination of these. On a lightly loaded or dedicated network zita-njbridge can provide low latency (same as for an analog connection). Additional buffering can be specified in case there is significant network delay jitter. IPv6 is fully supported.
  
=== Meterec ===
 
* [http://meterec.sourceforge.net/ 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 ===
+
* https://github.com/rhetr/ipaudio - use jackd, zita-njbridge and systemd for network ip audio
* [https://github.com/kmatheussen/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.
 
  
* http://mein-neues-blog.de/2015/02/07/mein-neues-blog-deb-repository/#recjack
 
** http://mein-neues-blog.de/category/recjack/
 
  
=== jrec2 ===
+
* https://github.com/nettings/medianet - The medianet distribution is a derivative of Debian Linux/Raspberry Pi OS. It was created to turn Raspberry Pis into reliable embedded audio nodes, signal processors, and streaming endpoints.The audio system is built around the JACK Audio Connection Kit, complemented with the mod-host to run LV2 plugins, the zita-njbridge to provide clock decoupled uncompressed network audio streaming, and many other open-source audio tools.
* [http://gareus.org/oss/jrec/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 ===
 
* [http://rd.slavepianos.org/?t=rju&e=jack-record.ad jack-record] is a light-weight JACK capture client to write an arbitrary number of channels to disk.
 
  
=== screcord.lv2 ===
+
* https://github.com/gisogrimm/ov-client -  Headless clients to share and receive spatial realtime audio on Linux, MacOS and Windows hosts using JACK, zita-njbridge and TASCAR
* https://github.com/brummer10/screcord.lv2
 
  
=== QJackRcd ===
+
* https://github.com/gisogrimm/ovbox
* [http://sourceforge.net/projects/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_audio_send / jack_audio_receive ====
* [http://plugin.org.uk/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.
+
* https://github.com/7890/jack_tools/tree/master/audio_rxtx - jack_audio_send & jack_audio_receive - JACK clients allowing to transmit uncompressed
** http://www.64studio.com/manual/audio/timemachine - A JACK application that can retrospectively record audio.
+
native JACK 32 bit float audio data on the network using UDP OSC messages.
** https://github.com/swh/timemachine
 
  
=== Rotter ===
+
* https://github.com/7890/audio_rxtx_gui
* [https://www.aelius.com/njh/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 ==
+
==== MultiJACK ====
* http://www.soundonsound.com/sos/jun00/articles/metring.htm
+
* https://github.com/ponderworthy/MultiJACK - a fully operational demo of a framework to increase available audio DSP power available to JACK within a single multicore motherboard, using multiple JACK processes in concert, connected via IP transport.
  
* https://en.wikipedia.org/wiki/VU_meter
+
Compared to jack2??
  
* https://en.wikipedia.org/wiki/Peak_programme_meter
 
  
 +
==== FLACJACKet ====
 +
* https://github.com/0xsx/FLACJACKet - a DLNA media server that broadcasts streams of audio routed to JACK input ports over the local network encoded in the FLAC format. It aims to provide reliable audio transmission while minimizing latency and taking advantage of FLAC features such as lossless compression and support for surround sound. It is Free and Open Source Software, released under the GNU General Public License.
  
=== JackMeter ===
 
* [https://www.aelius.com/njh/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 ===
+
==== TPF ====
* [http://plugin.org.uk/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.
+
* https://gitlab.zhdk.ch/TPF/tpf-server - Telematic performance format server software
  
=== Ebumeter ===
+
* [https://groups.google.com/forum/#!msg/jacktrip-users/mJwY9akpyC0/bNQpta9sCAAJ Release of tpf-client / tpf-server]
* [http://kokkinizita.linuxaudio.org/linuxaudio/ebumeter-doc/quickguide.html 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 ===
+
==== trx ====
* [https://github.com/x42/meters.lv2 meters.lv2] is a collection of audio-level meters with GUI in LV2 plugin format.
 
  
* [http://www.mzuther.de/en/software/trakmeter/ traKmeter] - Loudness meter for correctly setting up tracking and mixing levels.
+
* https://github.com/nettings/trx-jack - fork of http://www.pogo.org.uk/~mark/trx.git (dead) by Mark Hills
** https://www.kvraudio.com/product/trakmeter-by-mzuther
 
  
* [http://www.mzuther.de/en/software/kmeter/ K-Meter] - Implementation of a K-System meter according to Bob Katz’ specifications.
+
==== jackcast ====
 +
* https://github.com/zokrezyl/jackcast - simple tool to transmit Jack audio and Midi over the network
  
 +
==== Spatify ====
 +
* https://github.com/bgola/spatify -  Audio spatialization over WebRTC and JACK Audio Connection Kit
  
=== JACK bitmeter ===
+
=== PipeWire ===
* [http://devel.tlrmx.org/audio/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.
+
See [[AV]]
  
== Visualisation ==
+
* https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Network
See [[Lighting#Visualisation]]
 
  
* [http://karlstav.github.io/cava/ cava] - Console-based Audio Visualizer for Alsa
 
** https://github.com/karlstav/cava [https://news.ycombinator.com/item?id=9954639]
 
  
* [http://www.apexvj.com/kaksi/input 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
+
=== Studio Link ===
 +
* [https://studio-link.de/ Studio Link] - professional Audio-Over-IP
  
  
* [http://x42-plugins.com/x42/x42-scope x42-scope] - aka sisco.lv2, audio oscilloscope with variable time scale in LV2 plugin format.
+
* https://github.com/Studio-Link/app - This repository contains the studio link - baresip modules and build environment
** https://github.com/x42/sisco.lv2
 
  
* [http://hypermammut.sourceforge.net/ HyperMammut] - transform sounds to images and vice-versa using single BIG Fourier Transforms (or DCT/DST,etc.).
+
* https://github.com/Studio-Link/overlay-vst
  
* [http://soundlab.cs.princeton.edu/software/sndpeek/ 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
+
* https://github.com/Studio-Link/overlay-lv2 - Linux LV2 VoIP/AoIP Plugin
  
* [http://das.nasophon.de/jack_oscrolloscope/ 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.
+
=== AudioGridder ===
 +
* https://github.com/apohl79/audiogridder - DSP servers using general purpose networks and computers] - allows you to offload DSP processing from your local to remote computers. This can come in handy when mixing complex projects for instance. AudioGridder comes with a plugin and a server that is enabling VST3 and AudioUnit plugins to be hosted across the network. Simply run the server component on a remote machine and connect your DAW using the AudioGridder AU/VST3 plugin. You can add remote insert chains into your DAW's signal paths that way. The DSP code of the inserted plugins will be executed on the remote machine and the plugin UI's will be streamed over the wire. This allows for an experience very close to hosting the plugins directly in your DAW but not using your local CPU.
  
* [http://rd.slavepianos.org/?t=rju&e=jack-scope.ad 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.
+
=== Roc ===
 +
* [https://roc-project.github.io/ Roc] - real-time audio streaming over the network
 +
** [https://roc-streaming.org/toolkit/docs/about_project/overview.html Overview — Roc Toolkit]
 +
** https://github.com/roc-project/roc
  
* https://lwn.net/Articles/138021/ - DSSI Oscilloscope
+
=== HBRMT ===
 +
* https://en.wikipedia.org/wiki/High_bit_rate_media_transport - (HBRMT) formerly known as High bit rate audio video over IP (HBRAV-IP), is a proposed standard for data encapsulation and forward error correction (FEC) of high bit rate contribution oriented video/audio feed services, up to 3 Gbit/s over Ethernet networks. HBRMT is being developed by the SMPTE 32NF networking technology committee. HBRMT is designed to incorporate both SDI uncompressed and JPEG 2000 compressed video and audio formats.
  
 +
=== waveOverUDP ===
 +
* https://github.com/amurzeau/waveOverUDP - Stream audio over UDP with low latency (can be used for remote speakers)
  
* https://github.com/johnhldavis/xjackfreak - audio analysis/EQ tool for GNU/Linux/X11/Jack Audio Connection Kit. It can display the FFT of any input, modify it and output the result.
+
=== VBAN ===
 +
* [https://vb-audio.com/Voicemeeter/vban.htm VB-Audio Network] - VBAN Protocol has been designed for real-time transport of digital audio stream in IP-based network environments. VBAN allows to send or / and receive audio to / from other computers of any local networks. Voicemeeter already allows easy way to manage several incoming / outgoing streams. For Any Local Network Infra-Structure Based on UDP Protocol, VBAN is made for Audio Pro and Audiophiles, to transport multichannel audio in native PCM format (all sampling rate supported). Developed like a "RADIO" transmitter / receptor system, the VBAN protocol can also broadcast other data (Serial, TXT...).
  
  
* [http://sed.free.fr/spectrojack/ spectrojack] - A little spectrogram/audiogram/sonogram/whatever for jack. gtk 2 and fftw 3.
+
* https://github.com/quiniouben/vban - VBAN protocol open-source implementation
  
* [http://spectrum3d.sourceforge.net/ 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.
 
** https://sourceforge.net/projects/spectrum3d/
 
  
* http://xspect3d.sourceforge.net/
+
* https://github.com/FossoresLP/pw-vban#vban-module-for-pipewire - VBAN module for PipeWire
  
 +
=== SonoBus ===
 +
* [https://sonobus.net/ SonoBus] - an easy to use application for streaming high-quality, low-latency peer-to-peer audio between devices over the internet or a local network. Simply choose a unique group name (with optional password), and instantly connect multiple people together to make music, remote sessions, podcasts, etc. Easily record the audio from everyone, as well as playback any audio content to the whole group. Connects multiple users together to send and receive audio among all in a group, with fine-grained control over latency, quality and overall mix. Includes optional input compression, noise gate, and EQ effects, along with a master reverb. All settings are dynamic, network statistics are clearly visible. Works as a standalone application on macOS, Windows, iOS, and Linux, and as an audio plugin (AU, VST, on macOS and Windows. Use it on your desktop or in your DAW, or on your mobile device. Easy to setup and use, yet still provides all the details that audio nerds want to see. Audio quality can be instantly adjusted from full uncompressed PCM (16, 24, or 32 bit) or with various compressed bitrates (16-256 kbps per channel) using the low-latency Opus codec, and you can do this independently for any of the users you are connected with in a group.
 +
** https://github.com/sonosaurus/sonobus
  
* [https://bitbucket.org/asiniscalchi/visualjackm visualjackm] - connect projectM visualizzation to jack
+
* [https://sonobus.net/sonobus_userguide.html SonoBus User Guide]
  
* [https://github.com/markandrus/Sonify Sonify] - JACK plugin that encodes images into audio and vice-versa, in realtime. http://mrkrbrts.com/blog
+
* [https://play.google.com/store/apps/details?id=com.sonosaurus.sonobus SonoBus – Apps on Google Play]
** http://mrkrbrts.com/blog/
 
  
* [http://biniou.net/ 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.
+
=== trx ===
 +
* [http://www.pogo.org.uk/~mark/trx trx] - a simple toolset for broadcasting live audio from Linux. It sends and receives encoded audio over IP networks, via a soundcard or audio interface. It can be used for point-to-point audio links or multicast, eg. private transmitter links for a radio station or other live audio distribution. In contrast to traditional streaming, high quality wideband audio (such as music) can be sent with low-latency, typically as low as a few milliseconds, and incredibly fast recovery from dropouts. It works favourable as a replacement for traditional ISDN lines and hardware ISDN codecs. Features include: Very simple to set up Low latency with fast recovery from dropouts Full control over latency and buffers Supports IPv4 and IPv6, including multicast Unlike TCP streaming such as Icecast, trx uses RTP/UDP with handling of dropped packets and network congestion that is more appropriate to live or realtime audio. Much of this comes courtesy of the brilliant Opus audio codec. The result is an incredibly graceful handling of network loss or dropouts. It is intended for use over closed or private IP networks. It can be used over the public internet, but you are warned that it has no built-in security or authentication of the received audio. If you do not already have a private network you may wish to use an appropriate tunnel or IPsec. trx is based on the following software/libraries: ALSA (Linux) Opus codec lib oRTP: packaged with most Linux distributions
  
* [http://www.vsxu.com/ 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.
+
=== Android ===
** https://github.com/vovoid/vsxu
+
See also [[Android#Remote]]
  
 +
==== sndlink ====
 +
* https://github.com/koraa/sndlink - Point to point audio streaming over UDP with minimal latency with support for linux and android (using termux). I wrote this because my laptop audio broke and I needed a solution to use my mobile phone as an audio output to watch some movies. sndlink uses portaudio for alsa, oss, windows and linux support and uses an experimental portaudio version with opensles support on android. Instead of RTP (which is a fairly large protocol) a very simple UDP protocol with sequence numbers is used.
  
* [http://www.jthorborg.com/index.html?ipage=signalizer 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.
+
==== USBaudio ====
** https://bitbucket.org/Mayae/signalizer/overview
+
* [https://blog.rom1v.com/2019/06/introducing-usbaudio/ Introducing USBaudio · ~rom1v/blog]
 +
** https://github.com/rom1v/usbaudio - forwards audio from an Android device to the computer over USB. It works on Linux with PulseAudio. The purpose is to enable audio forwarding while mirroring with scrcpy. However, it can be used independently, and does not require USB debugging enabled. Note that AOA audio, the feature used by USBaudio, is '''deprecated since Android 8.0'''. For Android 10, use sndcpy instead.
  
* https://sourceforge.net/projects/heaven/files/Audio%20Applications/Jack%20Related/QOscC/
+
==== sndcpy ====
 +
* https://github.com/rom1v/sndcpy - forwards audio from an Android 10 device to the computer. It does not require any root access. It works on GNU/Linux, Windows and macOS. The purpose is to enable audio forwarding while mirroring with scrcpy. However, it can be used independently. Update: scrcpy 2.0 now supports audio forwarding natively.
  
 +
* [https://blog.rom1v.com/2020/06/audio-forwarding-on-android-10/ Audio forwarding on Android 10 · ~rom1v/blog]
  
 +
For Android 11 onward, see [[Android#scrcpy]].
  
 +
==== broo ====
 +
* https://github.com/siddhpant/broo - Connect your phone as microphone wirelessly using Mumble. Supports both PipeWire and PulseAudio.
  
* [https://www.upf.edu/web/mtg/repovizz RepoVizz] - a data repository and visualization tool for structured storage and user-friendly browsing of music performance multi-modal recordings. The primary purpose of RepoVizz is to offer means for the scientific community to gain on-line access to a music performance multi-modal database shared among researchers.
+
* [https://dev.to/anasrin/android-phone-as-microphone-on-linux-using-local-network-4p8k Android Phone as Microphone on Linux Using Local Network - DEV Community]
** https://github.com/repovizz
 
** YouTube: [https://www.youtube.com/watch?v=c7pmDvkKY7A repovizz - ICT Vilnius Demo (SIEMPRE & PHENICX) long version]
 
  
 +
==== Audio Share ====
 +
* https://github.com/mkckr0/audio-share - can share Windows/Linux computer's audio to Android phone over network, so your phone becomes the speaker of computer
  
 +
* [https://f-droid.org/packages/io.github.mkckr0.audio_share_app/ Audio Share | F-Droid - Free and Open Source Android App Repository] - can share Windows/Linux computer's audio to Android phone over network, so your phone becomes the speaker of computer. (You needn't to buy a new speaker😄.)
  
 +
== Plugins ==
  
* http://photosounder.com/spiral - $
+
* [https://lwn.net/SubscriberLink/890272/7ddc2c5d2a73facf/ An introduction to Linux audio plugin APIs -LWN.net-]
  
== Analysis ==
 
=== Baudline ===
 
* [http://www.baudline.com/ 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.
 
  
* https://en.wikipedia.org/wiki/Baudline
+
* https://www.kvraudio.com/plugins/linux/free/newest
  
* http://www.baudline.com/manual/
+
=== Formats ===
 +
* https://www.youtube.com/user/UPROAR24
  
* http://baudline.blogspot.co.uk/
+
==== VST2 / VST3 ====
 +
* https://en.wikipedia.org/wiki/Virtual_Studio_Technology
  
* https://ileriseviye.wordpress.com/2012/03/20/baudline-how-to-solve-the-all-input-devices-disabled-error-on-ubuntu-gnulinux/
+
paths:
 +
~.vst
 +
/usr/lib/vst
 +
/usr/local/lib/vst
 +
~/.wine/drive_c/Program Files (x86)/VstPlugins
 +
~/.wine/drive_c/Program Files/VstPlugins
  
  
* https://groups.google.com/forum/#!msg/baudline
 
  
=== Friture ===
+
* PDF: [http://www.freesoundeditor.com/downloads/vst_doc/toby_newman_dissertation.pdf An Investigation into Music-Oriented Software-Based Audio Signal Processing, Including Development of a Real-time Audio Application Using C++] - Toby Newman
* [http://friture.org/ Friture ] - a real-time audio analyzer. It works on Windows, Mac OS X and Linux. It is free and open source.
 
** https://github.com/tlecomte/friture
 
  
=== SoundRuler ===
 
* [http://soundruler.sourceforge.net/main/ 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 ===
+
* https://github.com/Xaymar/vst2sdk - a completely "clean room" untainted reverse engineered "SDK" for the VST 2.x interface. It was reverse engineered from binaries where no license restricting the reverse engineering was attached, or where the legal system explicitly allowed reverse engineering for the purpose of interoperability.
* [http://sourceforge.net/projects/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
 
  
* https://en.wikipedia.org/wiki/BRP-PACU
 
  
* https://electronjunkie.wordpress.com/category/brp-pacu/
+
* [https://vst-preset-generator.org/about VST Preset Generator] - writes preset files (fxp for program patch or fxb for bank patch) with randomized values.This is a tool for lazy or curious sound designers, who want to experiment random theory with their VST plugins.
 +
** https://svn.tuxfamily.org/viewvc.cgi/vpg_vst-preset-gen
  
=== japa ===
 
* [http://wiki.linuxaudio.org/apps/all/japa Japa (JACK and ALSA Perceptual Analyser)] - a 'perceptual' or 'psychoacoustic' audio spectrum analyser.
 
  
  
=== Spek ===
+
* https://github.com/x42/lv2vst - LV2 - VST wrapper. Expose LV2 plugins as VST2 plugins to a VST plugin-host on Windows, OSX and Linux.
* [http://spek.cc/ 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 ===
+
* https://github.com/falkTX/JackAss - 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.
* [https://indiscipline.github.io/post/zrtstr-eliminate-faux-stereo/ 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 ===
 
* [http://gillesdegottex.github.io/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.
 
** https://github.com/gillesdegottex/dfasma
 
  
=== ASAnnotation ===
+
* https://github.com/webprofusion/OpenAudio - A list of open source VST/audio plugin projects. Please contribute more links or open source your own plugins.
* [http://recherche.ircam.fr/equipes/analyse-synthese/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 ===
 
* [http://harmony-analyser.org/ harmony-analyser] is a set of visual tools for music harmony analysis of WAV/MIDI input, powered by JHarmonyAnalyser library
 
** https://github.com/lacimarsik/harmony-analyser
 
  
=== Toscanalyzer ===
 
* [http://www.toscanalyzer.org/index.php/en/ 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 ===
+
* https://github.com/DropSnorz/OwlPlug - Audio plugin manager. Small tool to manage VST plugin folders on Windows and MacOS
* http://www.voxengo.com/product/span/ - windows/mac vst
 
  
=== Raven Lite ===
 
* http://www.birds.cornell.edu/brp/RavenLite/RavenLiteReadMe.htm - an interactive sound visualization tool for novice through advanced users who want to visualize sound in exciting ways. Windows and Mac. Lite version is freware
 
  
=== pyAudioAnalysis ===
 
* https://github.com/tyiannak/pyAudioAnalysis pyAudioAnalysis - Python library covering a wide range of audio analysis tasks, including: feature extraction, classification, segmentation and visualization.
 
  
=== Room EQ Wizard ===
+
* [https://forums.steinberg.net/t/vst-2-discontinued/761383 VST 2 discontinued - Announcements - Steinberg Forums]
* [https://www.roomeqwizard.com 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.
+
* [https://forums.steinberg.net/t/cannot-use-the-gpl3-option/750876 Cannot use the GPL3 option - Developer / VST 3 SDK - Steinberg Forums]
  
=== Gist ===
 
* https://github.com/adamstark/Gist - a C++ based audio analysis library
 
  
== Feature extraction ==
 
=== aubio ===
 
* [http://aubio.org/ 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.
 
  
* [http://jeremysalwen.github.io/Aubio-LV2-Plugins/ 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.
+
===== Creating =====
 +
* https://github.com/AuburnSounds/dplug
 +
** [http://www.modernmetalproduction.com/dplug-developing-vst-plugins-for-linux/ Dplug For Developing VST Plugins on Linux] [https://news.ycombinator.com/item?id=15058198]
  
=== Vamp ===
 
* [http://www.vamp-plugins.org/ 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.
 
  
* http://www.vamp-plugins.org/download.html
+
* [http://hise.audio/ HISE] - a cross-platform open source audio application for building virtual instruments. It emphasizes on sampling, but includes some basic synthesis features for making hybrid instruments as well as audio effects. You can export the instruments as VST / AU / AAX plugins or as standalone application for Windows / macOS or iOS.
 +
** https://github.com/christophhart/HISE
  
* http://isophonics.net/QMVampPlugins
+
* https://github.com/davidhealey/librewave_woodwinds - contains the HISE project, scripts, and image files for the Libre Wave Sofia Woodwinds virtual instrument.
  
* https://code.soundsoftware.ac.uk/projects/segmenter-vamp-plugin/
 
  
* https://code.soundsoftware.ac.uk/projects/silvet
+
* https://github.com/Tracktion/pluginval - a cross-platform plugin validator and tester application. It is designed to be used by both plugin and host developers to ensure stability and compatibility between plugins and hosts.
  
  
* https://www.upf.edu/web/mtg/melodia - Melody Extraction vamp plug-in
+
* [https://jamba.dev/ Jamba] - a set of helpers (classes, concepts, build files, etc…) built on top of the VST SDK to provide a lightweight framework to build a VST2/3 plugin. Jamba has been designed to help in building VST2/3 plugin, not to replace it: you are still writing a VST2/3 plugin, not a Jamba plugin.
 +
** https://github.com/pongasoft/jamba
  
* https://www.upf.edu/web/mtg/hpcp - Harmonic Pitch Class Profile vamp plug-in
 
  
=== auditok ===
+
* https://github.com/RustAudio/vst-rs - VST 2.4 API implementation in rust. Create plugins or hosts. Previously rust-vst on the RustDSP group.
* [https://github.com/amsehili/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.
+
** https://github.com/crsaracco/vst2-gui-research
  
=== Beats [per minute] ===
+
==== VST3 ====
* [http://obiwannabe.co.uk/html/music/bonker/bonker.html 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.
+
* [https://steinbergmedia.github.io/vst3_doc/ Steinberg Plug-in Interfaces Documentation] - VST3
 +
** [https://steinbergmedia.github.io/vst3_doc/vstinterfaces/vst3Automation.html VST 3 Interfaces: Parameters and Automation]
  
* [http://www.breakfastquay.com/minibpm/ 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.
 
  
* [https://github.com/mguentner/libbeat libbeat] - a lightweight beat detection library for Qt. It currently supports ALSA and PulseAudio. It uses fftw to process the samples.
+
* https://github.com/steinbergmedia/vst3sdk/releases - versioning
  
* [http://www.pogo.org.uk/~mark/bpm-tools/ 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.
+
* [https://steinbergmedia.github.io/vst3_doc/vstsdk/index.html VST 3 SDK: Introduction]
 +
** https://github.com/steinbergmedia/vst3_public_sdk - VST 3 Implementation Helper Classes And Examples
  
* [https://sourceforge.net/projects/beatdetektor/ 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/steinbergmedia/vst3_doc
  
* 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.
 
  
 +
* https://github.com/skei/vst3_plugin.h - header-only vst3 plugin wrapper [https://www.kvraudio.com/forum/viewtopic.php?f=33&t=556777]
  
  
* [https://github.com/metachronica/audio-dsp-midi-trigger MIDI Trigger] - LV2 plugin which detects peaks by audio signal and sends MIDI notes.
+
VST3 threads...
 +
* [https://forums.steinberg.net/t/vst3-and-midi-cc-pitfall/201879/5 VST3 and MIDI CC pitfall - Developer / VST 3 SDK - Steinberg Forums]
 +
* [https://forum.juce.com/t/add-support-for-sending-midi-ccs-out-of-vst3-plugins/35781 Add support for sending Midi CCs out of VST3 plugins - Feature Requests - JUCE]
 +
* [https://github.com/iPlug2/iPlug2/issues/105 Linux support -help wanted- · Issue #105 · iPlug2/iPlug2]
 +
* [https://forums.steinberg.net/t/vst3-sdk-c-abi-vs-java-rust-net-etc-libraries-still-rely-on-vst-2-api-solution/201956/4 VST3 SDK C++ ABI vs Java, Rust, .Net, etc. libraries still rely on VST 2 API: solution? - Developer / VST 3 SDK - Steinberg Forums]
 +
* [https://web.archive.org/web/20160818195532/virtualanalogy.com/gnu-gpl-and-audio-plugins-iii-license-compatibility-ii/ GNU GPL and audio plugins III. – License compatibility II. | Virtual Analogy]
 +
* [https://forums.steinberg.net/t/vst-3-sdk-licensing-faq/201638 VST 3 SDK Licensing FAQ - Developer / VST 3 SDK - Steinberg Forums]
 +
* [https://forums.steinberg.net/t/cannot-use-the-gpl3-option/750876 Cannot use the GPL3 option - Developer / VST 3 SDK - Steinberg Forums]
 +
* https://forum.juce.com/t/vst-midi-message-note-on-with-velocity-0-doesnt-work-in-carla/50957/5
  
 +
==== LV2 ====
 +
* [http://lv2plug.in/ 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.
 +
** https://en.wikipedia.org/wiki/LV2
 +
** https://github.com/lv2/lv2/wiki
  
* [http://teragonaudio.com/BeatCounter.html 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.
+
* http://lists.lv2plug.in/listinfo.cgi/devel-lv2plug.in
** https://github.com/teragonaudio/BeatCounter
 
  
  
 +
~/.lv2
 +
/usr/local/lib/lv2
 +
/usr/lib/lv2
 +
  # standard lv2 paths
  
* [https://sourceforge.net/projects/tapita/ Tapita] - (snack in spanish) is a BPM detector trough keyboard, MIDI and jack written in C with GTK2.
 
  
=== Frequency ===
+
lv2ls
* http://isophonics.net/tony
+
  # list all lv2 plugins available
** https://code.soundsoftware.ac.uk/projects/tony
 
  
=== Silence ===
 
* [https://www.aelius.com/njh/silentjack/ SilentJack] is a silence/dead air detector for the Jack Audio Connection Kit.
 
** https://github.com/7890/silentjack_osc
 
  
=== Essentia ===
+
===== Specifications =====
* [http://essentia.upf.edu/ 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
+
* [http://lv2plug.in/ns/ LV2 Specifications] - All official LV2 specifications.
** https://github.com/MTG/essentia
 
  
* 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 ===
+
* [http://lv2plug.in/ns/lv2core/ LV2] - 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)
* 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]]
+
* http://lv2plug.in/ns/ext/port-groups - Multi-channel groups of LV2 ports.
  
* 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.
 
  
 +
* [http://lv2plug.in/ns/ext/midi/midi.html#controllerNumber LV2 MIDI] - defines a data type for a MIDI message, midi:MidiEvent, which is normalised for fast and convenient real-time processing. MIDI is the Musical Instrument Digital Interface, a ubiquitous binary standard for controlling digital music devices. For plugins that process MIDI (or other situations where MIDI is sent via a generic transport) the main type defined here, midi:MidiEvent, can be mapped to an integer and used as the type of an LV2 Atom or Event.
 +
* [http://lists.lv2plug.in/pipermail/devel-lv2plug.in/2016-November/001696.html LV2 + midnam]
  
* https://en.wikipedia.org/wiki/List_of_audio_programming_languages - including languages optimized for sound production, algorithmic composition, and sound synthesis.
 
  
* [http://www.nosuch.com/plum/cgi/showlist.cgi?sort=name&concise=yes Programming Languages Used for Music] - list ([http://www.nosuch.com/plum/cgi/showlist.cgi?sort=name verbose])
+
* [http://lv2plug.in/ns/extensions/units/ LV2 Units] - This vocabulary defines a number of units for use in audio processing.
  
  
* http://wiki.linuxaudio.org/wiki/programming_libraries
+
* [http://lv2plug.in/ns/extensions/ui/ LV2 UI] - This extension is used to create User Interfaces (UIs) for LV2 plugins.
  
  
* https://blog.jfo.click/sound-from-nowhere
 
  
* http://soundprogramming.blogspot.co.uk/
+
* [http://libregraphicsworld.org/blog/entry/lv2-1-0-released-what-is-next LV2 1.0 released, what's next?] - "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."
  
* [http://www.analog.com/en/design-center/landing-pages/001/beginners-guide-to-dsp.html A Beginner's Guide to Digital Signal Processing (DSP)]
 
  
* http://www.modernmetalproduction.com/
 
  
* http://pipad.org/wiki/index.php/DSP
+
* [https://lv2plug.in/pages/host-compatibility.html Host Compatibility] - This page shows the state of host support for different parts of LV2. It is generated from data in the LV2 site repository, additions and corrections are welcome.
 +
** https://gitlab.com/lv2/site/-/blob/main/host_compatibility.ttl
  
 +
===== Creating =====
 +
* [http://lv2plug.in/book/#_introduction Programming LV2 Plugins] - a series of well-documented example plugins that demonstrate the various features of LV2. Starting with the most basic plugin possible, each adds new functionality and explains the features used from a high level perspective. API and vocabulary reference documentation explains details, but not the “big picture”. This book is intended to complement the reference documentation by providing good reference implementations of plugins, while also conveying a higher-level understanding of LV2.
 +
* [http://drobilla.net/files/guide.html Programming LV2 Plugins] - new book layout
  
* [https://github.com/FFMS/ffms2 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.
 
  
 +
* [https://janonard.github.io/lv2rs-book/ The LV2 Book - Rust Edition] - a translation of the LV2 Book by David Robillard for the lv2rs library. As such, the examples in this book as well as the README's and comments are copied from the original, but the book itself has been altered to adapt for the differences between C and Rust.
 +
** https://github.com/Janonard/lv2rs-book
  
  
 +
* https://github.com/diovudau/lv2-workshop - Documentation and code for a workshop on creating LV2 plug-ins by OSAMC
  
* [http://echonest.github.com/remix Echo Nest Remix] is the Internet Synthesizer. Make amazing things from music, automatically. Turn any music or video into Python or JavaScript code.
 
  
 +
* [http://ll-plugins.nongnu.org/lv2pftci/ 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.
  
  
* https://ccrma.stanford.edu/~jos/filters
+
* [http://drobilla.net/software/lilv/ 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.
 +
** https://github.com/brunogola/lilv_python_examples
  
* https://www.native-instruments.com/fileadmin/ni_media/downloads/pdf/VAFilterDesign_1.1.1.pdf
+
* https://github.com/agraef/pure-lang/tree/master/pure-lilv - provides a Pure module for David Robillard's Lilv, a library for LV2 plugin host writers.
  
* Designing Sound by Andy Farnel
+
* https://github.com/atsushieno/lilv-sharp - It is an experimental Mono binding for Lilv.
  
* Welsh's Synthesizer Cookbook: Synthesizer Programming, Sound Analysis, and Universal Patch Book
 
  
 +
* [http://drobilla.net/software/suil/ Suil] is a lightweight C library for loading and wrapping LV2 plugin UIs.
  
* https://en.wikipedia.org/wiki/Unit_generator
 
  
* http://www.algorithmic.net/systems
+
* https://github.com/OpenMusicKontrollers/props.lv2 - Utility header for property based LV2 plugins
  
 +
* https://github.com/OpenMusicKontrollers/timely.lv2 - Utility header for time-based LV2 plugins
  
* https://www.reddit.com/r/musicprogramming
 
  
* https://www.reddit.com/r/audiodev
+
* [http://lvtoolkit.org/ LVTK] - C++ wrappers for LV2 Plugins
 +
** https://github.com/lvtk/lvtk
  
* https://www.reddit.com/r/diydsp
 
  
* https://www.reddit.com/r/diypedals
+
* https://github.com/rerdavies/lv2cairo - C++ toolkit for implement LV2 Plugins with Cario/X11 user interfaces.
  
* https://www.reddit.com/r/pedalcircuits/
 
  
* https://www.reddit.com/r/DIYGear/
+
* https://github.com/Janonard/lv2rs - Idiomatic Rust library to create LV2-compatible plugins.
  
* https://www.reddit.com/r/webaudio/
 
  
 +
* https://github.com/x42/lv2toweb - create xhtml documentation for LV2 plugins
  
  
* http://www.virtual-sound.com/
 
  
* https://www.coursera.org/course/audio
+
* https://github.com/aleksrutins/lv2-template - A template for creating an LV2 plugin with C++ and Meson.
  
 +
* [https://www.linuxmusicians.com/viewtopic.php?f=44&t=11360 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.
  
* [http://www.ee.columbia.edu/~dpwe/e4896/outline.html Music Signal Processing] - Department of Electrical Engineering - Columbia University [https://news.ycombinator.com/item?id=2484425]
+
* https://github.com/christosku/modgen - A docker container with a python script that allows building lv2 plugins from max/msp gen~ exports for the mod.audio devices.  
  
* https://ccrma.stanford.edu/~jos/pubs.html
+
* [https://linuxmusicians.com/viewtopic.php?p=102568 dkbuilder] - from circuit to LV2 plugin
 +
** [https://linuxmusicians.com/viewtopic.php?f=44&t=19806&sid=4fbe1619f6ebcc7f66266ea8112b7f32 dkbuilder: simulate a Poweramp] - follow-up
  
* [https://ccrma.stanford.edu/~jos/mdft/ Mathematics of the Discrete Fourier Transform (DFT) with audio applications]
 
  
* [https://ccrma.stanford.edu/~jos/pasp/ Physical audio signal processing
 
  
* [https://ccrma.stanford.edu/~jos/sasp/ Spectral audio signal processing]
+
* https://github.com/fps/lv2-ttl2c - A small python script to generate code from a LV2 plugin bundle manifest
  
* [https://ccrma.stanford.edu/~jos/filters/filters.html Introduction to Digital Filters with Autio Applications] - Julius O. Smith III (CCRMA)
+
* https://github.com/polyeffects/lv2_to_dict - dodgy hack script to convert an LV2 TTL to a python dictionary because TTL is harder for me to parse than json or dicts.
  
* [https://www.safaribooksonline.com/blog/2014/11/07/making-computers-sing/ 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.
 
  
* https://ccrma.stanford.edu/wiki/Stanford_Laptop_Orchestra
+
* https://github.com/lvtk/jlv2 - LV2 Related JUCE Modules
  
* http://www.rossbencina.com/code/real-time-audio-programming-101-time-waits-for-nothing
 
  
* [https://queue.acm.org/detail.cfm?id=2484010 Realtime GPU Audio - Finite difference-based sound synthesis using graphics processors]
+
* https://github.com/maxmarsc/lv2-cpp-tools-gui-less - This repository contains a dead simple copy of the original lv2-c++-tools but only containing the source code for the lv2plugin library. Everything else has been removed.
  
* https://en.wikipedia.org/wiki/Category:Audio_libraries
+
===== Testing =====
 +
* [http://lv2plug.in/pages/validating-lv2-data.html Validating LV2 Data]
  
=== bash ===
 
* http://blog.robertelder.org/bash-one-liner-compose-music/
 
  
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
+
* https://github.com/jpcima/lv2-plugin-checker
  
=== Historical ===
 
* http://www.o-art.org/history/
 
  
* https://ccrma.stanford.edu/overview/
+
* [https://git.open-music-kontrollers.ch/lv2/lv2lint/about/ lv2lint] - Check whether a given LV2 plugin is up to the specification
** https://ccrma.stanford.edu/overview/composition.html
 
** https://ccrma.stanford.edu/overview/research.html
 
  
* https://ccrma.stanford.edu/~juanig/articles/ageofnoise/ageofnoise.html CCRMA @ The Age of Noise Festival] - Colombia, Juan Reyes (et. al.), 2001
 
** https://ccrma.stanford.edu/~juanig/articles/ageofnoise/CCRMA_Center_Research.html
 
  
* http://recherche.ircam.fr/equipes/repmus/RMPapers/CMJ98/
+
* [http://carlh.net/plugins/torture.php Torture tester] - a program to help with testing of LADSPA and LV2 plugins.
  
==== 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.
+
* https://github.com/moddevices/lv2bm - a benchmark tool for LV2 plugins, it was inspired in the lv2bench of lilv utils and the Torture tester
  
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
+
* https://github.com/ventosus/alluis.lv2 - LV2 plugin to test various LV2 UI toolkits
Pure Data, AudioMulch, SuperCollider, JSyn, Common Lisp Music, ChucK, or any other computer synthesis language that relies on a modular system (e.g. Reaktor).
 
  
* http://www.musicainformatica.org/topics/music-n.php
+
* https://github.com/ventosus/customui.lv2 - Plugin to test custom LV2 UI
  
1969
+
===== Bridge to =====
 +
* [http://naspro.sourceforge.net/plugins.html 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.
  
* http://www.musicainformatica.org/topics/music-v.php
 
  
Ported to a PDP10, Music V became the Mus10 music compiler system and played scores composed in Leland Smith's SCORE language.
+
* https://github.com/x37v/pdlv2 - turns pure data patches into LV2 plugins
  
* http://www.musicainformatica.org/topics/music-10.php
 
  
* https://en.wikipedia.org/wiki/SCORE_(software) - 1972, useful software to manage the score of other Music N, such as the Music IV and Music V.
+
===== Bridge from =====
 +
* https://github.com/falkTX/Shella - LV2 to VST2 wrapper
  
* [http://digital.music.cornell.edu/courses/music-6421/documentation/csound-and-score11/score11-documentation/ 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 ====
+
===== Multicore =====
* http://www.billbuxton.com/SSSP.html - Structured Sound Synthesis Project
 
  
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.
+
* https://github.com/falkTX/portal-lv2 - allow you to magically send audio from one side of the processing chain into another.They can be used as a way to parallelize the audio processing by forcely splitting a single chain into 2.
  
* http://www.billbuxton.com/ssspDigital.pdf
 
  
* YouTube: [https://www.youtube.com/watch?v=4DiREhbB6Nw SSSP Overview]
+
===== Offline processing =====
 +
* [https://github.com/jeremysalwen/lv2file lv2file] - a simple program which you can use to apply effects to your audio files without much hassle.
  
==== SAMBOX ====
+
* [http://naspro.sourceforge.net/applications.html lv2proc] - generates an output sound file by applying a LV2 effect plugin to an input sound file.
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.
+
===== Events =====
 +
* https://github.com/OpenMusicKontrollers/orbit.lv2 - An LV2 time event manipulation plugin bundle
  
* http://120years.net/the-samson-box-or-systems-concepts-digital-synthesizer-peter-samson-usa-1977/ - Systems Concepts Digital Synthesizer
+
* Beatbox - Creates MIDI events based on LV2 time position events (bars and beats), e.g. to drive a drum machine. Bars and beats can be disabled/enabled separately.
 +
* Click - Synthesizes click tracks based on LV2 time position events (bars and beats). Bars and beats can be disabled/enabled separately.
 +
* Looper - Loops arbitrary LV2 atom events on a ping-pong buffer. E.g. loops MIDI, OSC or anything else that can be packed into LV2 atoms with sample accuracy. Needs to be driven by LV2 time position events.
 +
* Pacemaker - Creates LV2 time position events from scratch to drive other plugins.
 +
* Quantum - Quantizes incoming events to whole beats.
 +
* Subspace - Subdivide or multiply incoming time signals by whole fractions, e.g. to speed up time x2, x3, ... or slow it down to x1/2, x1/3, ...
 +
* Timecapsule - Record/Playback of arbitrary LV2 atoms to/from memory. Record all incoming atom messages with sample accuracy and play them back later from memory. Stored atom event data is part of the plugin state and thus preserved across instantiations.
  
* [http://www.musicainformatica.org/topics/pla.php PLA] - 1983
+
===== Presets =====
 +
* https://gitlab.com/Jofemodo/preset2lv2 - A converter that takes a set of native presets and generate a LV2 bundle containing one or more banks. It supports several native formats and it's easily extensible.
  
==== 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.
+
===== Hardware =====
 +
* https://wiki.moddevices.com/wiki/Control_Chain - an open standard developed by MOD Devices that defines communication protocol, electrical specification, cables and connectors. It's used to interconnect external controllers (a.k.a peripheral devices) as expression pedals and foot-switches extension to MOD devices, for example the MOD Duo.
  
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.
+
* https://wiki.moddevices.com/wiki/Control_Chain_Protocol
  
* http://www.algomusic.com
 
  
 +
===== Distribution =====
 +
Distro packages.
  
==== Music Mouse ====
+
* https://github.com/patchstorage/patchstorage-lv2-uploader - Proof of concept utility for uploading LV2 plugins to patchstorage.com
* 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 ===
+
==== SPA ====
1989
+
SPA is designed to also support video, multiple buffers, dmabuf backed memory, buffers managed by the hardware. It avoids the RDF descriptions of LV2, keeping the .so self contained, using simple key/value properties to describe ports and nodes. It also favours using shared memory to exchange info between host and plugins, like clock information etc.
  
* [http://commonmusic.sourceforge.net/ 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.
+
* https://gitlab.freedesktop.org/pipewire/pipewire/-/blob/master/doc/spa/design.md
  
Pla is the intellectual ancestor of CM.
 
  
* http://www.cm-gallery.com/Forum/Tools/CMIntro.htm
+
* https://gitlab.freedesktop.org/pipewire/pipewire/-/tree/master/spa
  
* [http://commonmusic.sourceforge.net/cm/res/doc/cm.html Common Music 3 documentation]
+
==== LADSPA ====
 +
~/.ladspa
 +
/usr/local/lib/ladspa
 +
/usr/lib/ladspa
  
* https://ccrma.stanford.edu/CCRMA/Courses/AlgoComp/cm/doc/tutorials/stella/toc.html
+
* [http://www.ladspa.org/ Linux Audio Developer's Simple Plugin API] (LADSPA)
  
* http://www.michael-edwards.org/class/moz/cm/doc/examples/
 
  
* https://a.fsdn.com/con/app/proj/commonmusic/screenshots/digital%20audio.png
+
* http://torhelgeskei.blogspot.co.uk/2017/01/ladspawrapper-v001.html
  
* http://quod.lib.umich.edu/s/spobooks/bbv9810.0001.001/1:4/--algorithmic-composition-a-gentle-introduction-to-music?rgn=div1;view=toc
+
* https://github.com/kmatheussen/ladspavst - Make VST plugins appear as LADSPA Plugins.
  
=== Common Lisp Music ===
 
1997
 
  
* [https://ccrma.stanford.edu/software/clm/ 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).
+
* https://github.com/swh/LRDF - a library to make it easy to manipulate RDF files describing LADSPA plugins. It can also be used for general RDF manipulation. It can read RDF/XLM and N3 files and export N3 files, it also has a light taxonomic inference capability. N.B. this is the descendent project of sourceforge.net/projects/lrdf
  
* https://en.wikipedia.org/wiki/Common_Lisp_Music
 
  
* http://www.cliki.net/music
+
==== DSSI ====
 +
* http://dssi.sourceforge.net
  
* http://www.cliki.net/audio
+
* https://en.wikipedia.org/wiki/Disposable_Soft_Synth_Interface
  
 +
* http://smbolton.com/linux.html
  
* YouTube: [https://www.youtube.com/watch?v=sYcDtniJdoE Basic sound processing in Common Lisp (Dmitry Petrov)] [https://news.ycombinator.com/item?id=15772781]
 
  
=== Csound ===
+
* http://libmodsynth.sourceforge.net/
* [http://www.csounds.com/ 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.
 
  
* http://www.csounds.com/manual/html/
+
==== AU ====
  
* http://write.flossmanuals.net/csound/preface/
+
* https://github.com/sfztools/sfzt_auwrapper -  Custom edit of the Steinberg VST3→AU wrapper, with preference for static linking
  
* cSounds.com:[http://www.csounds.com/mastering/index.html Mastering Csound] - A collection of intermediate and advanced tutorials by Dr. Richard Boulanger
 
** http://www.csounds.com/mastering/em_09.html - modular synth
 
  
* http://www.reddit.com/r/csound
+
==== CLAP ====
  
==== CSoundQT ====
 
* [http://qutecsound.sourceforge.net/ 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.
 
** https://github.com/mantaraya36/CsoundQt
 
  
==== Cabbage Studio ====
+
* https://www.kvraudio.com/forum/viewtopic.php?p=8240683#p8240683
* 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.
 
  
** https://github.com/rorywalsh/cabbage
 
  
* http://write.flossmanuals.net/csound/cabbage/
+
* https://github.com/free-audio/clap - Audio Plugin API
  
 +
* https://github.com/free-audio/clap-host - an example to demonstrate how to create a CLAP host.
  
* http://forum.cabbageaudio.com/t/announce-hadron-for-cabbage/169
 
  
==== PWCsound ====
+
* https://github.com/jpcima/claptrap - Wrapper of CLAP plugins to other plugin standards
* [http://pwcsound.jimdo.com/ 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 ====
+
* https://github.com/free-audio/clap-info - A tool to show information about a CLAP plugin on the command line
* http://iainmccurdy.org/csound.html - a catalogue of example Csound files.
 
  
* [http://www.bartetzki.de/en/software.html#cmask 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.
 
  
  
* [http://oeyvind.teks.no/ftp/Projects/Projects/hadron/docs/ 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.
+
* https://github.com/baconpaul/clap-c99-distortion - A simple C99-only example of a CLAP audio effect. Really, you don't want to use this musically, The DSP is painfully naive. But this shows a simple set of wave folder / distortions in a 3 param state saving pure C99 CLAP Audio Effect.
  
 +
=== Hosts ===
 +
==== Multiple ====
 +
===== Carla =====
 +
* [http://kxstudio.sourceforge.net/Applications: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.
 +
** https://github.com/falkTX/Carla
 +
** https://github.com/falkTX/Carla-Manual
  
* [https://docs.google.com/document/d/1peGruni-Ec2e27C9iZqCW1k5uHT-s0wkiriW1J9egMM/preview AVSynthesis Composition Tool] - java
+
There are 4 types of engine processing:
  
* http://www.linuxjournal.com/magazine/avsynthesis-blending-light-and-sound-opengl-and-csound5
+
* '''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.
  
* [http://csoundjournal.com/issue10/avs-cs-composition.html Csound Journal: Composing With Csound In AVSynthesis] - Dave Phillips
 
  
 +
carla-single
 +
  # usage: /usr/bin/carla-single [arch (optional)] [format] [filename/uri] [label (optional)] [uniqueId (optional)]
  
* http://cecilia.sourceforge.net/
+
Possible archs:
 +
  - native (default)
 +
  - linux32
 +
  - linux64
 +
  - win32
 +
  - win64
  
* [http://blue.kunstmusik.com 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.
+
Possible formats:
 +
  - internal
 +
  - ladspa
 +
  - dssi
 +
  - lv2
 +
  - vst|vst2
 +
  - gig
 +
  - sf2
 +
  - sfz
  
=== Cmix / RTcmix ===
 
* [http://music.columbia.edu/cmc/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.
 
  
* https://en.wikipedia.org/wiki/Real-time_Cmix
+
Command-line launch 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"
  
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 ===
+
* [https://kx.studio/ns/dev-docs/CarlaBackend/modules.html Carla Backend: Modules] - API
* https://sourceforge.net/projects/portmedia - offers free, cross-platform, open-source I/O libraries for digital media including MIDI, video, and audio (see www.portaudio.com). Most work is in C to facilitate interoperabilty with many languages and systems.
 
** https://en.wikipedia.org/wiki/PortMedia
 
  
  
* [http://www.portaudio.com PortAudio] - a free, cross-platform, open-source, audio I/O library.  It lets you write simple audio programs in 'C' or C++ that will compile and run on many platforms including Windows, Macintosh OS X, and Unix (OSS/ALSA). It is intended to promote the exchange of audio software between developers on different platforms. Many applications use PortAudio for Audio I/O.
+
* 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.
** https://app.assembla.com/wiki/show/portaudio
 
** https://app.assembla.com/spaces/portaudio/git/source
 
** https://en.wikipedia.org/wiki/PortAudio
 
  
* https://en.wikipedia.org/wiki/PortMidi
+
===== Chibi =====
 +
* https://github.com/falkTX/Chibi - a mini-host audio plugin loader, meant to load one plugin at a time as if it was a standalone application.These are the goals for the project: Provide a quick way to start audio plugins; Integrate with relevant Session Managers; Allow to be reused for other projects, so plugins can literally become standalones; Provide the most useful tools from host-side without any extra plugin work; Leverage and test Carla as much as possible (avoiding duplicate work and having head-start on features). Chibi is basically Carla's little sister. It runs Carla's backend behind the scenes and shares quite a few visual traits. Building on top of what Carla has already achieved, it adds only the missing pieces for a "mini-host" setup.
  
 +
===== Ingen =====
 +
* [http://drobilla.net/software/ingen/ Ingen] (formerly Om) - a modular audio processing system for GNU/Linux audio systems using the Jack audio server and LV2 or LADSPA plugins.
 +
** YouTube: [https://www.youtube.com/watch?v=eMj-q5adAZ4 Creating Modular Synths using Ingen and ams-lv2 - Part 1]
 +
** YouTube: [https://www.youtube.com/watch?v=NgqtEZeXyrc Creating Modular Synths using Ingen and ams-lv2 - Part 2]
 +
** YouTube: [https://www.youtube.com/watch?v=j1UbFOOkGFA Linux Sound Design: Experimenting with Ingen, Ring Mod, and Bitwig]
  
* [http://www.playrec.co.uk 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.
+
* http://lac.linuxaudio.org/2015/papers/24.pdf
  
=== C ===
+
* https://github.com/rhetr/ingen-scripts
* [https://www.youtube.com/watch?v=GtQdIYUtAHg Experimental music from very short C programs]
 
* [https://www.youtube.com/watch?v=qlrs2Vorw2Y Experimental one-line algorithmic music - the 2nd iteration]
 
* YouTube: [https://www.youtube.com/watch?v=tCRPUv8V22o Music from very short programs - the 3rd iteration] [https://news.ycombinator.com/item?id=9415237]
 
  
* [https://news.ycombinator.com/item?id=9415237 Making music with a C compiler -SIGINT13-]
 
  
* [http://d00m.org/~someone/microtone/ 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
+
===== Jost =====
 +
* [http://www.anticore.org/jucetice/?page_id=4 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.
 +
** https://www.kvraudio.com/product/jost_by_jucetice
  
* [http://ethanwiner.com/eq-dsp.htm 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.
+
==== VST ====
 +
===== MrsWatson =====
 +
* [http://teragonaudio.com/MrsWatson.html 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
 +
** https://github.com/teragonaudio/MrsWatson
  
==== ld_preload sounds ====
+
===== dssi-vst =====
* 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.
+
* [http://breakfastquay.com/dssi-vst/ dssi-vst] - Run Windows VST plugins on Linux. DSSI doesn't support host tempo to plugin features.
  
* https://soundcloud.com/glowdon/the-sounds-of-malloc
+
===== FST =====
 +
* [http://www.joebutton.co.uk/fst/ 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.
 +
** https://git.iem.at/zmoelnig/FST
 +
** https://github.com/pierreguillot/FTS
  
* https://soundcloud.com/glowdon/jingy-compiler-1
+
===== FeSTige =====
 +
* [http://festige.sourceforge.net/ FeSTige] - a GUI for fst and dssi-vst, allowing you to run Windows VST plugins on Linux.
  
==== sndlib ====
+
===== fsthost =====
* https://ccrma.stanford.edu/software/snd/sndlib/
+
* [http://sourceforge.net/projects/fsthost/ 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. doesn't see JACK server..?
** https://ccrma.stanford.edu/software/snd/snd/sndlib.html
+
** https://sourceforge.net/p/fsthost/code/HEAD/tree/trunk/README
  
* io.c (read and write sound file data)
+
fsthost -g ~/.vst
* headers.c (read and write sound file headers)
+
  # build plugin db
* 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 ====
+
export VST_PATH=~/VST:/usr/share/vst:/otherlocation
* 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.
+
 +
fsthost -g
  
==== Audio File Library ====
+
fsthost_menu
* [http://audiofile.68k.org/ 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.
+
  # Perl GTK menu to startup plugins
 
+
fsthost_ctrl
==== bloopsaphone ====
+
  # Perl GTK app for control via TCP socket
* https://github.com/localhost/bloopsaphone
+
fsthost_list
 +
  # simple application to show known plugins ( read about XML DB )
 +
 +
export FSTMENU_GTK=2 # or 3
  
==== lyd ====
+
===== Airwave =====
* [http://pippin.gimp.org/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.
+
* [https://github.com/phantom-code/airwave 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
  
==== Pyo ====
+
* 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." [https://linuxmusicians.com/viewtopic.php?f=48&t=16043]
* [http://ajaxsoundstudio.com/software/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 ====
+
===== vstserver =====
* [http://liballeg.org 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
+
* https://github.com/kmatheussen/vstserver - an old program vstlib server
  
==== Soundpipe ====
+
===== vst-bridge =====
* [https://www.github.com/PaulBatchelor/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 [https://news.ycombinator.com/item?id=9746366]
+
* https://github.com/abique/vst-bridge - a bridge to run Windows VST plugins (both 32 and 64 bits) with Linux VST hosts.
** http://paulbatchelor.github.io/res/soundpipe/docs/
 
  
* [http://paulbatchelor.github.io/proj/sporth.html 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.
+
===== LinVst =====
 +
* 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.
  
 +
* https://github.com/osxmidi/LinVst-X - runs vst plugins in a single Wine process so plugins that communicate with each other or plugins that can use shared samples between instances will be able to communicate with their other instances, usage is basically the same as LinVst except that the file to be renamed to the vst dll name is linvstx.so (rather than linvst.so for LinVst).
  
* 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.
 
  
 +
* [https://pastebin.com/8D7zhL4f Linvstblast] [https://linuxmusicians.com/viewtopic.php?f=48&t=17789]
  
* http://paulbatchelor.github.io/proj/spigot - a set of simple graphical interfaces for Sporth. It is available for download on github and CCRMA-hosted gitlab.
 
  
 +
* [https://linuxmusicians.com/viewtopic.php?p=103495#p103495 LinVST - working plugs / libraries you use for compatibility (March 2019) - LinuxMusicians]
  
* 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.
 
  
 +
* https://github.com/osxmidi/LinVst3 - Linux Windows vst3 wrapper/bridge
  
==== mini_al ====
+
* https://github.com/osxmidi/LinVst3-X - Windows vst3 Linux Wrapper - Extra
* 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 ====
+
===== yabridge =====
* [http://drobilla.net/software/suil/ Suil] is a lightweight C library for loading and wrapping LV2 plugin UIs.
+
* https://github.com/robbert-vdh/yabridge -  Yet Another VST bridge, run Windows VST2 plugins under Linux
  
* [http://drobilla.net/software/lilv/ 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.
+
===== VSTForx =====
** https://github.com/brunogola/lilv_python_examples
+
* [http://www.vstforx.de/index.php/product-details/vstforx 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
  
* https://github.com/agraef/pure-lang/tree/master/pure-lilv - provides a Pure module for David Robillard's Lilv_, a library for LV2 plugin host writers.
 
 
  
* [https://github.com/bonemurmurer/ficus 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.
+
===== L_Pa =====
 +
* [https://sourceforge.net/projects/l-proaudio/ L_Pa Project] - collection of tools aimed at better integration and *performance* of Linux + Wine + jackd + Proaudio applications...L_pa accomplishes this by setting up a proper mix of kernel/software with low-latency/proaudio users _specifically in mind. So far the main components are;Custom version of the (rt-)linux kernel with a delta of patches, for linux proaudio usage.Custom version of Wine with a delta of patches to ensure Wine is ready for proaudio on the linux platform. It's also has various other improvements and bug fixes.You'll want both WineASIO and FSThost;WineASIO - WineASIO provides an ASIO to JACK driver for WINE.  
 +
** https://sourceforge.net/p/l-proaudio/wiki/Home
  
=== C++ ===
+
===== vsthost =====
* [https://christianfloisand.wordpress.com/2014/06/09/dynamics-processing-compressorlimiter-part-1/ Dynamics processing: Compressor/Limiter, part 1]
+
* https://github.com/wtrsltnk/vsthost - Small code base containing a minimal vsthost
  
 +
===== NetVST =====
 +
* [http://netvst.org/ NetVST] - Windows only
 +
** http://netvst.org/blog
  
* YouTube: [https://www.youtube.com/watch?v=boPEO2auJj4 CppCon 2015: Timur Doumler “C++ in the Audio Industry”]
+
===== PluginRunner =====
 +
* https://github.com/jatinchowdhury18/PluginRunner - A minimal command-line application for running audio through an audio plugin. Made with JUCE. Mostly only tested on Windows.
  
* YouTube: [https://www.youtube.com/watch?v=m7xYX8f8A7Y 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?
+
===== vstplugin =====
 +
* https://github.com/Spacechild1/vstplugin - VST plugin support for Pd and SuperCollider (mirror of https://git.iem.at/pd/vstplugin)
  
==== Synthesis ToolKit in C++ ====
+
===== UnityVSTHost =====
* [https://ccrma.stanford.edu/software/stk/ 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.
+
* https://github.com/Chris-TopherW/UnityVSTHost - VST plugin host for Unity engine. Supports 64bit VST2 plugins on Windows only. Does not support Midi input to plugins at this stage.  
** https://github.com/thestk/stk
 
  
* https://en.wikipedia.org/wiki/Synthesis_Toolkit
+
* https://github.com/Chris-TopherW/UnityVSTDll - the Dll implementation for the Unity VST host
  
==== RtAudio ====
+
===== Terra =====
* [http://www.music.mcgill.ca/~gary/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.
+
* https://github.com/hotwatermorning/Terra - The yet another audio plugin hosting application. (alpha version)
** https://github.com/thestk/rtaudio
 
  
==== OpenFrameworks ====
+
==== DSSI ====
* [http://openframeworks.cc/ OpenFrameworks] - an open source C++ toolkit for creative coding.
+
* [http://smbolton.com/linux.html 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.
** https://github.com/openframeworks/openFrameworks
+
** https://github.com/smbolton/ghostess
** https://en.wikipedia.org/wiki/openFrameworks
 
  
* http://ofxaddons.com/categories
+
==== LADSPA ====
** http://ofxaddons.com/categories/5-sound
+
* [http://jack-rack.sourceforge.net/ 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.
 +
** https://github.com/jwm-art-net/jack-rack
  
==== Tonic ====
+
* [http://code.google.com/p/jackspa/ 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.
* 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.
 
  
* YouTube: [https://www.youtube.com/watch?v=ppf3b8BC6yU Tonic Basics]
+
* [https://gna.org/projects/ngjackspa 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.
  
* 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.
+
* [http://sourceforge.net/projects/soundtank/ 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.
  
==== CLAM ====
+
* [https://sourceforge.net/p/stomper/wiki/Home/ 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.
* [http://clam-project.org/ 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.
 
** http://clam-project.org/wiki/CLAM_Wiki
 
  
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.
+
==== LV2 ====
  
* http://clam-project.org/wiki/Network_Editor_tutorial - graphical patching
+
===== Jalv =====
 +
* [http://drobilla.net/software/jalv/ Jalv] - 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.
 +
** https://github.com/brummer10/jalv_select - little app to select lv2 plugs for run with jalv
  
* 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).
+
jalv.qt5 http://drumkv1.sourceforge.net/lv2
  
==== 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.
+
LV2_PATH=/path/to/plugin.lv2 jalv.gtk URI
 +
 +
LV2_PATH=/path/to/plugin.lv2 lv2ls
 +
  # to find the URI(s)
  
==== JUCE C++ Library ====
+
===== calvo =====
* 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++".
+
* https://github.com/ajboni/calvo - 🧑🏼‍🦲 A jalv based lv2 plugin rack for your terminal.
  
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.
+
* [https://ajboni.github.io/calvo-cli-tools calvo-cli-tools]
 +
** https://github.com/ajboni/calvo-cli-tools -  python cli tools to manipulate JACK and get useful LV2 Information.
  
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.
+
===== mod-host =====
 +
* https://github.com/moddevices/mod-host - an LV2 host for JACK, controllable via socket or command line
  
* http://forum.juce.com/
 
** https://forum.juce.com/t/announcing-a-new-analytics-module/24764
 
  
* https://juce.com/get-juce - WUT [https://linuxmusicians.com/viewtopic.php?f=24&t=17814]
+
* https://github.com/moddevices/mod-ui - the UI for the MOD software. It's a webserver that delivers an HTML5 interface and communicates with mod-host. It also communicates with the MOD hardware, but does not depend on it to run.
  
* https://www.juce.com/projucer
 
  
* YouTube: [https://www.youtube.com/watch?v=imkVkRg-geI Projucer Demo]
+
* [https://pedalpi-pluginsmanager.readthedocs.io/en/latest/ PedalPi - PluginsManager] - Pythonic management of LV2 audio plugins with mod-host.
 +
** https://github.com/PedalPi/PluginsManager
  
* https://www.juce.com/doc/tutorial_new_projucer_project
+
===== Synthpod =====
 +
* [http://openmusickontrollers.github.io/lv2/synthpod/ Synthpod] - 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.
 +
** https://github.com/OpenMusicKontrollers/synthpod
  
 +
===== Elven =====
 +
* [http://ll-plugins.nongnu.org/ Elven] - 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.
  
* https://www.juce.com/learn/introjucer
+
===== zynjacku =====
 +
* [http://web.archive.org/web/20160726024444/http://home.gna.org/zynjacku/ 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.
 +
** https://github.com/nedko/zynjacku
  
* http://www.tunnelvision.fi/juce-framework-the-introjucer-gui-editor/
+
===== MODEP =====
 +
* [https://blokas.io/modep/ MODEP] - an open-source, community-based MOD DUO emulator that lets you play around with hundreds of LV2 audio plugins ranging from a simple reverb to a complex FM synth using your Raspberry Pi and Pisound or any other Raspberry Pi supported sound card!
 +
** https://github.com/BlokasLabs/modep - fork of pi-gen
  
  
* http://www.anticore.org/jucetice/
+
* [https://media.ccc.de/v/sonoj2023-23004-modep-pisound media.ccc.de - MODEP with Pisound] - Alternatives to the MOD Platform for Tinkerers. Sonoj 2023
** https://github.com/kunitoki/juced
 
** http://code.google.com/p/juced/downloads/list
 
  
 +
===== PedalPi =====
  
* 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.
+
* https://github.com/auto3000/pedalpii - an affordable but complete computer-based pedalboard for guitar/bass.
  
==== Jamoma ====
+
* https://github.com/auto3000/meta-pedalpi - Yocto meta-layer for pedalpi
* [http://jamoma.org/ 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.
 
** https://github.com/jamoma/Jamoma
 
  
* https://github.com/jamoma/JamomaPureData
+
* https://github.com/auto3000/pedalpi-dev-platform -  pedalpi development platform
  
==== WDL-OL ====
 
* https://github.com/olilarkin/wdl-ol - IPlug is a simple-to-use C++ framework for developing cross platform audio plugins and targeting multiple plugin APIs with the same code. Originally developed by Schwa/Cockos, IPlug has been enhanced by various contributors. IPlug depends on WDL, and that is why this project is called WDL-OL,  although most of the differences from Cockos' WDL are to do with IPlug.
 
* http://www.olilarkin.co.uk/html/
 
* http://www.cockos.com/wdl/
 
  
==== DSPFilters ====
+
* https://github.com/Rezzonics/pedalC2-dev-platform -  PedalPi Development Platform for Hardkernel Odroid-C2
* 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!
+
===== lv2host =====
 +
* https://github.com/giuliomoro/lv2host - A lv2 host with Bela example.
  
==== mopo ====
+
===== lv2-horst =====
* https://github.com/mtytel/mopo - Modular and Polyphonic audio synthesis library
+
* https://github.com/fps/lv2-horst - A simple C++ library implementing an LV2 plugin host exposing plugins as jack clients. Python bindings are provided (these are actually the sole reason for the existance of lv2-horst).
  
==== Raul ====
+
===== jackwrap.c =====
* 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.
+
* https://github.com/x42/robtk/blob/master/jackwrap.c - x42 jack wrapper / minimal LV2 host
  
==== openAudioProgrammingTutorials ====
+
===== lv2h =====
* https://github.com/harryhaaren/openAudioProgrammingTutorials - A tutorial style set of programs that will hopefully assist beginner programmers get familiar with the Linux Audio scene
+
* https://github.com/adsr/lv2h
  
==== JackCpp ====
+
=== Manager ===
* [http://x37v.info/projects/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).
+
==== OwlPlug ====
 +
* https://github.com/DropSnorz/OwlPlug - Audio plugin manager. Small tool to manage VST / AU / LV2 plugins on Windows, MacOS and Linux.
  
==== Maximilian ====
+
* https://github.com/OwlPlug/owlplug-scanner - Plugin command line scanner based on JUCE and used in OwlPlug app. Supports VST, VST3, AU and LV2.
* [http://maximilian.strangeloop.co.uk/ 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.
 
** https://github.com/micknoise/Maximilian
 
  
* YouTube: [https://www.youtube.com/watch?v=H-Av78mtFF4 Maximilian: C++ Audio and Music DSP Library, Mick Grierson, JUCE Summit 2015]
+
== Audio formats ==
 +
* http://www.fmtz.com/misc/raw-audio-file-formats
  
==== Wavelet ====
+
* https://wiki.multimedia.cx/index.php/Category:Audio_Codecs
* 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 ====
 
* [http://ll-plugins.nongnu.org/lv2pftci/ 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.
 
  
* [http://lv2plug.in/ns/lv2core/ 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)
+
* [http://www.xiph.org/video/vid2.shtml 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.
  
* [http://lvtoolkit.org/ LVTK] is C++ wrappers for LV2 Plugins
 
** https://github.com/lvtk/lvtk
 
  
=== D ===
+
* [http://www.vgmpf.com/ Video Game Music Preservation Foundation] - the Wikipedia of video game music!
* https://github.com/AuburnSounds/Dplug - Dplug is a library for creating native audio plugins (VST / AU / AAX) as simply as possible.
 
  
=== Java ===
 
* http://openjdk.java.net/projects/audio-engine/
 
  
* https://java.net/projects/gervill/pages/Home
+
* https://github.com/sandreas/tone - a cross platform utility to dump and modify audio metadata for a wide variety of formats. [https://news.ycombinator.com/item?id=31879133]
  
==== Java Sound ====
 
* http://www.oracle.com/technetwork/java/index-139508.html
 
  
* http://www.jsresources.org/
+
* [https://mediaarea.net/en/MediaInfo/Support/Tags MediaInfo - Tags]
  
==== JSyn ====
+
* https://wiki.hydrogenaud.io/index.php?title=Tag_Mapping
* [http://www.softsynth.com/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 ====
 
* [http://www.beadsproject.net/ 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 ====
+
=== PCM ===
* 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.
+
* 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.
  
==== JNAJack ====
+
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.
* https://github.com/jaudiolibs/jnajack - Java bindings to JACK Audio Connection Kit
 
  
==== JFuge ====
+
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.
* [http://www.jfugue.org/ JFugue] - Music Programming for Java™ and JVM Languages
 
  
==== JASS ====
+
* https://jannewmarch.gitbooks.io/programming-and-using-linux-sound-systems/content/Sampled/Codecs/PCM.html
* [http://www.cs.ubc.ca/~kvdoel/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 ====
 
* [http://jvstwrapper.sourceforge.net/ 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 ===
 
* https://wiki.python.org/moin/Audio/
 
  
* https://wiki.python.org/moin/PythonInMusic
+
* https://en.wikipedia.org/wiki/Differential_pulse-code_modulation - '''DPCM''', a signal encoder that uses the baseline of pulse-code modulation (PCM) but adds some functionalities based on the prediction of the samples of the signal. The input can be an analog signal or a digital signal. If the input is a continuous-time analog signal, it needs to be sampled first so that a discrete-time signal is the input to the DPCM encoder. DPCM was invented by C. Chapin Cutler at Bell Labs in 1950; his patent includes both methods.
  
==== PyJack ====
+
Option 1: take the values of two consecutive samples; if they are analog samples, quantize them; calculate the difference between the first one and the next; the output is the difference, and it can be further entropy coded. Option 2: instead of taking a difference relative to a previous input sample, take the difference relative to the output of a local model of the decoder process; in this option, the difference can be quantized, which allows a good way to incorporate a controlled loss in the encoding. Applying one of these two processes, short-term redundancy (positive correlation of nearby values) of the signal is eliminated; compression ratios on the order of 2 to 4 can be achieved if differences are subsequently entropy coded, because the entropy of the difference signal is much smaller than that of the original discrete signal treated as independent samples.
* [http://sourceforge.net/projects/py-jack/ PyJack] - jack audio client module for python
 
  
==== jackclient-python ====
 
* http://jackclient-python.readthedocs.io/
 
** https://github.com/spatialaudio/jackclient-python
 
  
==== python-wavefile ====
+
* https://en.wikipedia.org/wiki/Adaptive_differential_pulse-code_modulation - '''ADPCM''', is a variant of differential pulse-code modulation (DPCM) that varies the size of the quantization step, to allow further reduction of the required data bandwidth for a given signal-to-noise ratio. Typically, the adaptation to signal statistics in ADPCM consists simply of an adaptive scale factor before quantizing the difference in the DPCM encoder. ADPCM was developed in the early 1970s at Bell Labs for voice coding, by P. Cummiskey, N. S. Jayant and James L. Flanagan
* [https://github.com/vokimon/python-wavefile python-wavefile] - Pythonic libsndfile wrapper to read and write audio files.
 
  
==== PyWavelets ====
+
=== PDM ===
* [http://www.pybytes.com/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.
+
* 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.
  
==== Pippi ====
+
* https://curiouser.cheshireeng.com/2014/11/04/using-a-pdm-microphone/
* [https://github.com/hecanjog/pippi Pippi] - Computer music with python
 
  
==== Undulance ====
+
=== WAV /  WAVE ===
* [https://github.com/zwegner/undulance Undulance] is a Python software synthesis library. It mostly relies on PyPy to work at a sufficient speed, since CPython is too slow.
+
* 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.
  
=== 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 ===
+
* [http://www.lightlink.com/tjweber/StripWav/Canon.html The Canonical WAVE File Format]
* http://www.hermannseib.com/VstLua/quickstart.html
 
  
=== MATLAB ===
+
* [http://web.archive.org/web/20070818104556/www.sonicspot.com/guide/wavefiles.html Wave File Format - The Sonic Spot]
* [https://www.mathworks.com/products/matlab.html MATLAB]
 
  
* https://en.wikipedia.org/wiki/MATLAB
+
* [https://blogs.msdn.microsoft.com/dawate/2009/06/23/intro-to-audio-programming-part-2-demystifying-the-wav-format/ Intro to Audio Programming, Part 2: Demystifying the WAV Format – Game Theory] - A blog by Microsoft Academic Developer Evangelist, Dan Waters
  
  
* http://www.ness.music.ed.ac.uk/music-and-tools/releases
 
  
=== SuperCollider ===
+
* https://github.com/goonzoid/wavels - ls, but for waves 🌊
1996 / OSS in 2002
 
  
* [http://supercollider.github.io/ 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.
 
** https://github.com/supercollider/supercollider
 
  
* http://audiosynth.com/
+
* https://github.com/Borewit/music-metadata/wiki/RIFF-WAVE - on metadata
  
* http://en.wikipedia.org/wiki/SuperCollider
+
* https://github.com/synesthesiam/wav-chunk -  Read or write INFO chunks in WAV files
  
* https://www.reddit.com/r/supercollider
 
  
 +
* https://github.com/K0F/genwav - generate audio files from txt floats
  
* PDF: [https://ccrma.stanford.edu/~ruviaro/temp/00_PDF_A_Gentle_Introduction_To_SuperCollider_LULU_2014-09-06.pdf A Gentle Introduction to SuperCollider]
 
** https://github.com/brunoruviaro/A_Gentle_Introduction_To_SuperCollider
 
  
* https://en.wikibooks.org/wiki/Designing_Sound_in_SuperCollider
+
* https://github.com/volkertb/ich2player -  AC'97 DOS .wav player for the Intel ICHx (ICH through ICH7) and 440MX chipsets.  
** https://en.wikibooks.org/wiki/Designing_Sound_in_SuperCollider/Equivalents_for_Pure_Data_Objects
 
  
* http://www.musicainformatica.org/read/aa-vv-the-supercollider-book.php
+
* https://github.com/iluvcapra/bwavfile
  
* http://sccode.org/
 
  
* https://github.com/supercollider/sc3-plugins
+
==== Looping ====
  
 +
* [https://www.wavosaur.com/quick-help/loop-points-edition.php Loop points edition - Wavosaur help]
  
* https://github.com/enrike/sc
+
* [https://forum.audiob.us/discussion/44887/what-apps-for-saving-wav-files-with-embedded-loop-point-data/p2 What apps for saving WAV files with embedded loop point data? - Page 2 — Audiobus Forum] - an award-winning music app for iPhone and iPad which lets you use your other music apps together. Chain effects on your favourite synth, run the output of apps or Audio Units into an app like GarageBand or Loopy, or select a different audio interface output for each app. Route MIDI between apps — drive a synth from a MIDI sequencer, or add an arpeggiator to your MIDI keyboard — or sync with your external MIDI gear. And control your entire setup from a MIDI controller. Download on the App Store Audiobus is the app that makes the rest of your setup better.
  
* https://scgolang.github.io/sc/
 
  
* https://github.com/scgolang/scc
+
==== Broadcast WAV ====
 +
* https://en.wikipedia.org/wiki/Broadcast_Wave_Format - an extension of the popular Microsoft WAV audio format and is the recording format of most file-based non-linear digital recorders used for motion picture, radio and television production. It was first specified by the European Broadcasting Union in 1997, and updated in 2001 and 2003. The purpose of this file format is the addition of metadata to facilitate the seamless exchange of sound data between different computer platforms and applications. It specifies the format of metadata, allowing audio processing elements to identify themselves, document their activities, and supports timecode to enable synchronization with other recordings. This metadata is stored as extension chunks in a standard digital audio WAV file.
  
 +
* [https://www.bbc.co.uk/rd/publications/audio-definition-model-software Audio Definition Model Software - BBC R&D]
  
* https://github.com/byulparan/cl-collider
 
  
 +
* [http://bwfmetaedit.sourceforge.net/ BWF MetaEdit] - developed by the Federal Agencies Digitization Guidelines Initiative (FADGI) supported by AudioVisual Preservation Solutions.This tool permits embedding, editing, and exporting of metadata in Broadcast WAVE Format (BWF) files. This tool can also enforce metadata guidelines developed by the Federal Agencies Audio-Visual Working Group, as well as recommendations and specifications from the European Broadcasting Union (EBU), Microsoft, and IBM.
  
* http://quarks.sourceforge.net/
 
* https://github.com/supercollider-quarks/
 
  
* http://x37v.info/projects/scvim/
+
==== RF64 ====
 +
* PDF: [https://tech.ebu.ch/docs/tech/tech3306.pdf RF64: An extended File Format for Audio - EBU tech]
  
* https://github.com/thormagnusson/ixilang - Mac
+
* PDF: [https://www.itu.int/dms_pubrec/itu-r/rec/bs/R-REC-BS.2088-1-201910-I!!PDF-E.pdf Long-form file format for the international exchange of audio programme materials with metadata]
  
* https://github.com/thormagnusson/ixiQuarks
 
  
 +
* https://en.wikipedia.org/wiki/RF64 - a BWF-compatible multichannel audio file format enabling file sizes to exceed 4 GB. It has been specified by the European Broadcasting Union. It has been accepted as the ITU recommendation ITU-R BS.2088.The file format is designed to meet the requirements for multichannel sound in broadcasting and audio archiving. It is based on the Microsoft RIFF/WAVE format and Wave Format Extensible for multichannel parameters. Additions are made to the basic specification to allow for more than 4 GB file sizes when needed (the new maximum filesize is now approximately 16 exabytes). The format is transparent to the BWF and all its supplements and chunks.
  
* https://github.com/Qirky/FoxDot
 
** http://toplap.org/foxdot-live-coding-with-python-and-supercollider/
 
  
 +
* https://github.com/IRT-Open-Source/libbw64 - Broadcast Wave 64 (ITU-R BS.2088) library
  
* [https://github.com/muellmusik/Utopia 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.
+
=== AU ===
 +
* https://en.wikipedia.org/wiki/Au_file_format - a simple audio file format introduced by Sun Microsystems. The format was common on NeXT systems and on early Web pages. Originally it was headerless, being simply 8-bit µ-law-encoded data at an 8000 Hz sample rate. Hardware from other vendors often used sample rates as high as 8192 Hz, often integer multiples of video clock signal frequencies. Newer files have a header that consists of six unsigned 32-bit words, an optional information chunk and then the data (in big endian format). Although the format now supports many audio encoding formats, it remains associated with the µ-law logarithmic encoding. This encoding was native to the SPARCstation 1 hardware, where SunOS exposed the encoding to application programs through the /dev/audio interface. This encoding and interface became a de facto standard for Unix sound.
  
  
* [https://modalityteam.github.io/ 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.
+
* https://notabug.org/kd/au-utils - simple, easily sandboxed, pipeline components for audio processing, using the au(7) file-format as an intermediary.
  
 +
=== MP3 ===
 +
* [http://en.wikipedia.org/wiki/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.
  
* http://www.joemariglio.com/blog/sonic-shredder-v0-2/
+
* http://ryanmaguiremusic.com/theghostinthemp3.html [https://news.ycombinator.com/item?id=7955917]
  
* http://codeminion.com/blogs/maciek/2008/05/cgmusic-computers-create-music/
+
* http://www.walterdevos.be/how-to-check-quality-of-mp3-file
  
* http://www.earslap.com/weblog/dequencher-a-live-sequencer.html
 
  
* https://github.com/rfwatson/live-loop-tool
+
* https://github.com/lieff/minimp3 - Minimalistic, single-header library for decoding MP3. minimp3 is designed to be small, fast (with SSE and NEON support), and accurate (ISO conformant). You can find a rough benchmark below, measured using perf on an i7-6700K, IO included, no CPU heat to address speedstep:
  
=== Overtone ===
 
* [http://overtone.github.com/ 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
+
* https://github.com/anars/blank-audio - Set of blank MP3 audio files
user=>(use 'overtone.live)
 
  
* PDF: [https://raw.githubusercontent.com/overtone/overtone/master/docs/cheatsheet/overtone-cheat-sheet.pdf Overtone Cheat Sheet]
+
==== Encoding ====
 +
===== LAME =====
 +
* [http://lame.sourceforge.net/ LAME] is a high quality MPEG Audio Layer III (MP3) encoder licensed under the LGPL.
 +
* http://savvyadmin.com/batch-mp3-encoding-with-linux-and-lame/
  
  
* https://github.com/overtone/overtone/wiki/MIDI
+
for f in *.wav ; do lame "$f" ; done
  
* [https://github.com/plewto/Cadejo Cadejo] is a MIDI management tool for use with Overtone
+
===== shine =====
** https://www.youtube.com/watch?v=GgXCAMs2EQY
+
* https://github.com/toots/shine - Super fast fixed-point MP3 encoder.
  
  
* https://github.com/ctford/leipzig - A composition library for Overtone.
+
===== mp3fs =====
 +
* [http://khenriks.github.io/mp3fs/ mp3fs] - 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. [https://news.ycombinator.com/item?id=8314651]
 +
** https://github.com/khenriks/mp3fs
  
 +
==== Splitting ====
 +
===== mp3splt =====
 +
* [http://mp3splt.sourceforge.net/mp3splt_page/home.php mp3splt] - a utility to split mp3, ogg vorbis and native FLAC files selecting a begin and an end time position, without decoding. It's very useful to split large mp3/ogg vorbis/FLAC to make smaller files or to split entire albums to obtain original tracks. If you want to split an album, you can select split points and filenames manually or you can get them automatically from CDDB (internet or a local file) or from .cue files. Supports also automatic silence split, that can be used also to adjust cddb/cue splitpoints. Trimming using silence detection is also available. You can extract tracks from Mp3Wrap or AlbumWrap files in few seconds. For mp3 files, both ID3v1 & ID3v2 tags are supported. Mp3splt-project is split in 3 parts : libmp3splt, mp3splt and mp3splt-gtk.
  
* http://skillsmatter.com/podcast/home/functional-composition - chris ford
+
===== unflac =====
 +
* https://github.com/ftrvxmtrx/unflac - Frame accurate audio image + cue sheet splitting. No ReplayGain.
  
=== ChucK ===
+
===== split2flac =====
2003
+
* https://github.com/ftrvxmtrx/split2flac - Split flac/ape/wv/wav + cue sheet into separate tracks
  
* [http://chuck.cs.princeton.edu/ 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. [https://news.ycombinator.com/item?id=7571082]
+
===== Pcutmp3 =====
** https://github.com/ccrma/chuck
+
* [https://wiki.themixingbowl.org/Pcutmp3 Pcutmp3] - a Java based program that lets you cut and trim MP3 files losslessly (i.e. without any quality loss as there is no re-encoding). Ideal for removing adverts or unwanted intros/outros from your radio mixes. Originally created by Sebastian Gesemann it is now maintained by Christopher Banes.  
  
* http://wiki.cs.princeton.edu/index.php/ChucK
+
* https://bitbucket.org/gbouthenot/pcutmp3/src/default/ - gapless mp3 cutter tool This is a fork from http://pcutmp3.googlecode.com/svn/trunk/ Author: Christopher Banes (New BSD Licence).
  
* https://github.com/ccrma/chugins
+
* https://github.com/hdijkema/pcutmp3-gui - Proper Cut MP3 with bug fixes and enhanced with a GUI
  
* https://github.com/casperschipper/chugins
+
===== lossless-cut =====
 +
* https://github.com/mifi/lossless-cut - Save space by quickly and losslessly trimming video and audio files
  
 +
===== quelcom =====
 +
* https://github.com/posixru/quelcom - provides assorted tools to perform simple editing operations on MP3 and WAV audio files. These include fading, check-and-clean, informational extraction and lossless cutting and joining without reencoding.
  
* [https://github.com/heuermh/lick LiCK] - Library for ChucK.
 
  
* http://audicle.cs.princeton.edu/
+
===== MP3-Splitter =====
** https://github.com/ccrma/audicle
+
* https://github.com/gitpan/MP3-Splitter - MP3::Splitter - Perl extension for splitting MP3 files
  
* YouTube: [https://www.youtube.com/watch?v=hFAh-pgxGyc ChucK and Audicle Quick Demo 2006]
 
  
* http://audicle.cs.princeton.edu/mini/
+
===== Flacon =====
** https://github.com/ccrma/miniAudicle
+
* [https://flacon.github.io/ Flacon] - extracts individual tracks from one big audio file containing the entire album of music and saves them as separate audio files. To do this, it uses information from the appropriate CUE file. Besides, Flacon makes it possible to conveniently revise or specify tags both for all tracks at once or for each tag separately.
 +
** https://github.com/Flacon/flacon
  
=== Processing ===
+
===== album-splitter =====
* [https://www.processing.org/ 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.
+
* https://github.com/crisbal/album-splitter - Do you have a music album as a single file (locally or on YouTube), with all its tracks joined together? Do you want to split that album in its single tracks? Do you want to tag these tracks so your music player can get all the required info from them?
** https://github.com/processing/processing
 
** https://github.com/processing
 
  
  
* http://www.sojamo.de/libraries/controlP5/
+
===== WavePad =====
  
=== FAUST ===
+
* [https://www.nch.com.au/wavepad/index.html Audio Editing Software. Sound, Music, Voice & Mp3 Editor] - This audio editing software is a full-featured professional audio and music editor for Windows and Mac. It lets you record and edit music, voice and other audio recordings. When editing audio files, you can cut, copy and paste parts of recordings, and then add effects like echo, amplification and noise reduction. WavePad works as a wav or mp3 editor, but it also supports a number of other file formats including vox, gsm, wma, real audio, au, aif, flac, ogg, and more.
2002
 
  
* [http://faust.grame.fr/ 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.
+
Non-commercial usage only.
** https://github.com/grame-cncm/faust [https://news.ycombinator.com/item?id=13012880]
 
** https://en.wikipedia.org/wiki/FAUST_(programming_language)
 
  
 +
* [http://help.nchsoftware.com/help/en/wavepad/win/losslessmp3.html Editing - Lossless MP3 Editing]
  
* http://faust.grame.fr/about
+
===== mp3DirectCut =====
 +
* [http://mpesch3.de1.cc/mp3dc.html mp3DirectCut] - a fast and extensive audio editor and recorder for encoded MP3. Without re-encoding you can directly cut, crop or split your MP3 and AAC tracks, change the volume on MP3 and much more. Direct editing saves encoding time and preserves the original audio quality of your tracks. The built in recorder creates MP3 on the fly. By using Cue sheets, Pause detection or Auto cue you can easily divide long files.
 +
** https://en.wikipedia.org/wiki/mp3DirectCut - Windows
  
* YouTube: [https://www.youtube.com/watch?v=ov8kU_AQGnA Faust Quick Start] - 1h29m
+
==== Metadata ====
 +
* http://en.wikipedia.org/wiki/ID3
  
* YouTube: [https://www.youtube.com/playlist?list=PLm4w-OPxJrVoIcAo0BfQNwBBjDXGPc8aK CCRMA Faust Workshop 2015]
+
* [https://mp3tag.js.org/docs/frames.html Tags and Frames | mp3tag.js]
  
  
* http://faust.grame.fr/onlinecompiler
+
* http://wiki.slimdevices.com/index.php/Beginners_Guide_To_Tagging
  
* http://faust.grame.fr/faustplayground/
 
  
 +
* http://id3.org/Home
 +
* http://id3.org/Implementations
  
FaustWorks:
 
git clone git://faudiostream.git.sourceforge.net/gitroot/faudiostream/FaustWorks
 
  
FaustLive:
+
* http://id3v2.sourceforge.net/
* https://github.com/grame-cncm/faustlive/blob/master/Documentation/UserManual.pdf
 
  
* [http://lac.linuxaudio.org/2014/video.php?id=28 FAUSTLIVE: Just-In-Time Faust Compiler... and much more]
 
  
 +
* http://linux.die.net/man/1/mid3v2
  
  
 +
* [http://nedbatchelder.com/code/modules/id3reader.html id3reader] - a Python module that reads ID3 metadata tags in MP3 files. It can read ID3v1, ID3v2.2, ID3v2.3, or ID3v2.4 tags. It does not write tags at all.
  
* [http://faust.grame.fr/library.html Faust Libraries]
 
  
* https://raw.githubusercontent.com/grame-cncm/faust/master/documentation/faust-quick-reference.pdf
+
* http://search.cpan.org/dist/MP3-Info/
 +
* http://search.cpan.org/dist/MP3-Tag/
 +
* http://search.cpan.org/dist/MP3-Find/
  
  
 +
* https://wiki.python.org/moin/UsefulModules#ID3_Handling
  
Grouping solution 1: [https://sourceforge.net/p/faudiostream/mailman/message/34395413/]
+
* http://id3-py.sourceforge.net/
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:
+
* https://github.com/quodlibet/mutagen - a Python module to handle audio metadata. It supports ASF, FLAC, MP4, Monkey's Audio, MP3, Musepack, Ogg Opus, Ogg FLAC, Ogg Speex, Ogg Theora, Ogg Vorbis, True Audio, WavPack, OptimFROG, and AIFF audio files. All versions of ID3v2 are supported, and all standard ID3v2.4 frames are parsed. It can read Xing headers to accurately calculate the bitrate and length of MP3s. ID3 and APEv2 tags can be edited regardless of audio format. It can also manipulate Ogg streams on an individual packet/page level.
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
 
  
 +
* [http://eyed3.nicfit.net/ eyeD3] - 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.
  
<pre>
 
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 +,+:+]
 
</pre>
 
  
 +
* http://sourceforge.net/projects/bulkid3 - an en-masse ID3 tag editor. It is designed to allow bulk modification of mp3 files, as well as file renaming.
  
* PDF: [http://www.grame.fr/ressources/publications/faust-chapter.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.
+
=== 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.
  
 +
* http://en.wikipedia.org/wiki/High-Efficiency_Advanced_Audio_Coding
  
* http://faust.grame.fr/images/faust-tutorial2.pdf
 
  
* https://ccrma.stanford.edu/~rmichon/faustTutorials/
+
* https://github.com/linnaea/faac - based on the ISO MPEG-4 reference code.
  
* [https://ccrma.stanford.edu/~rmichon/faustWorkshops/course2015/ Faust Worksop 2015: Online Course]
+
=== Ogg ===
** [https://www.youtube.com/watch?v=lUjOvRtOir8 CCRMA Faust Workshop 2015 - Part 3: Faust Semantic Basics + Panner + Tremolo]
+
* [http://www.xiph.org/ogg Ogg] is a multimedia container format, and the native file and stream format for the Xiph.org multimedia codecs.
 +
** http://en.wikipedia.org/wiki/Ogg
  
* https://ccrma.stanford.edu/~jos
+
Container format.
** [https://ccrma.stanford.edu/~jos/aspf/aspf.html Audio Signal Processing in FAUST]
 
** [https://ccrma.stanford.edu/~jos/faust/ Signal Processing in Faust and Pd]
 
  
 +
* https://en.wikipedia.org/wiki/Vorbis_comment - a metadata container used in the Vorbis, FLAC, Theora, Speex and Opus file formats. It allows information such as the title, artist, album, track number or other information about the file to be added to the file itself. However, as the official Ogg Vorbis documentation notes, “[the comment header] is meant for short, text comments, not arbitrary metadata; arbitrary metadata belongs in a separate logical bitstream (usually an XML stream type) that provides greater structure and machine parseability.”
  
* http://faust.grame.fr/news/2016/01/14/controlling-with-midi.html
+
* https://github.com/manxorist/rogg - a small library I wrote for manipulating Ogg streams in memory.This makes it convenient to write certain quick scripts for checkingand fixing simple bitstream errors in mmap()'d files.  
  
* http://faust.grame.fr/news/2017/02/21/Faust-meets-JUCE.html - GUI
+
==== Opus ====
 +
* [https://www.opus-codec.org/ 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.
 +
** http://en.wikipedia.org/wiki/Opus_(codec)
  
* ccc: [https://media.ccc.de/v/minilac16-pluginprgammingfaust Aggraef: Plugin Programming with Faust #minilac16] - video
+
Best lossy audio format, replaces Vorbis and Speex.
  
  
* 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://opus-codec.org/comparison
  
* 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.
+
* https://opus-codec.org/docs
  
* http://purelang.bitbucket.org/
 
** https://bitbucket.org/purelang/pure-lang/wiki/Addons
 
  
* https://puredata.info/downloads/pd-faust
 
  
* https://github.com/TheAlphaNerd/faust2webaudio
+
* [https://opus-codec.org/demo/opus-1.5/ Opus 1.5 Released]
** https://ccrma.stanford.edu/~mborins/420b/
 
  
=== Snack Sound Toolkit ===
 
* [http://www.speech.kth.se/snack/ 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 ===
 
* [http://mad.emotionull.com/ Music as Data] (MAD) is a live programming language/environment based on Processing.org written in Clojure. MAD lets you treat music as data and apply data transformation on the fly so you can experiment with notes and samples.
 
** https://github.com/jonromero/music-as-data
 
  
=== Extempore ===
+
* https://wiki.xiph.org/Opus_Recommended_Settings
* [http://extempore.moso.com.au/ 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.
+
* http://wiki.hydrogenaud.io/index.php?title=Opus
  
=== Nyquist ===
+
ffmpeg -i input -acodec libopus -b:a bitrate -vbr on -compression_level 10 output
* https://en.wikipedia.org/wiki/Nyquist_%28programming_language%29
 
  
* [http://www.cs.cmu.edu/afs/cs.cmu.edu/project/music/web/music.software.html 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.
 
  
* http://www.audacityteam.org/help/nyquist/
+
* https://github.com/vlazzarini/opcode_compiler - experimental opcode builds on the initial work by Michael Goggins, and is based on the llvm/clang interpreter example code. It provides a just-in-time C module compiler, which can be used to add new opcodes to Csound on-the-fly.
* http://wiki.audacityteam.org/wiki/Nyquist_Audio_Programming
 
  
=== athenaCL ===
+
==== Vorbis ====
* [http://www.flexatone.org/athena.html 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.
+
* http://xiph.org/vorbis
 +
** http://en.wikipedia.org/wiki/Vorbis
  
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.
+
==== Speex ====
 +
* https://www.speex.org
 +
** https://en.wikipedia.org/wiki/Speex - a lossy audio compression format specifically tuned for the reproduction of human speech and also a free software speech codec that may be used on VoIP applications and podcasts. It is based on the CELP speech coding algorithm. Speex claims to be free of any patent restrictions and is licensed under the revised (3-clause) BSD license. It may be used with the Ogg container format or directly transmitted over UDP/RTP. It may also be used with the FLV container format. The Speex designers see their project as complementary to the Vorbis general-purpose audio compression project.
  
=== Audio Programming Environment ===
 
* [http://www.jthorborg.com/index.html?ipage=ape 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.
 
  
* https://bitbucket.org/Mayae/ape-snippets
+
* [http://www.rowetel.com/?page_id=452 Codec 2 | Rowetel] - Codec 2 is an open source speech codec designed for communications quality speech between 700 and 3200 bit/s. The main application is low bandwidth HF/VHF digital radio. It fills a gap in open source voice codecs beneath 5000 bit/s and is released under the GNU Lesser General Public License (LGPL).
  
=== AudioKit ===
+
The Codec 2 project also contains several modems (FDMDV, COHPSK and mFSK) carefully designed for digital voice over HF radio; GNU Octave simulation code to support the codec and modem development; and FreeDV – an open source digital voice protocol that integrates the modems, codecs, and FEC. FreeDV is available as a GUI application, an open source library (FreeDV API), and in hardware (the SM1000 FreeDV adaptor).
* [http://audiokit.io/ 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. [https://news.ycombinator.com/item?id=8574558]
 
** https://github.com/audiokit/AudioKit
 
  
* http://www.csounds.com/audiokit-an-open-source-api-using-csound/
 
  
* http://audiokit.io/playgrounds/ - live coding
+
==== FLAC ====
 +
* [https://xiph.org/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.
  
  
=== The #MusicBricks Toolkit ===
+
* [https://xiph.org/flac/documentation_tools_flac.html FLAC documentation]
* [http://musictechfest.net/toolkit/ The #MusicBricks Toolkit]
 
  
=== Jacktube ===
+
flac --best --keep-foreign-metadata input.wav -f
* [http://jacktube.sourceforge.net/ 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 ===
 
* [http://sonic-pi.net/ 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.
 
** https://github.com/samaaron/sonic-pi
 
  
* https://aimxhaisse.com/aerodynamic-en.html
+
* [https://xiph.org/flac/documentation_tools_metaflac.html FLAC - metaflac command line tool] - program to list, add, remove, or edit metadata in one or more FLAC files.
 +
** https://linux.die.net/man/1/metaflac
  
=== alda ===
+
metaflac --list file.flac
* [https://github.com/alda-lang/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! [https://news.ycombinator.com/item?id=11490097] [https://news.ycombinator.com/item?id=10177716] [https://news.ycombinator.com/item?id=10662598]
+
  # list all metadata of a FLAC file
  
* https://www.reddit.com/r/alda/
 
  
* https://github.com/MadcapJake/language-alda
 
  
=== Platonic Music Engine ===
+
* http://sourceforge.net/projects/flacsquisher
* [http://www.platonicmusicengine.com/ 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.
 
** https://gitlab.com/davethecomposer/platonic-music-engine
 
  
* https://www.reddit.com/r/platonicmusicengine
 
  
=== Serpent / Aura ===
 
* [https://www.cs.cmu.edu/~music/aura/serpent-info.htm 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.
 
** https://sourceforge.net/projects/serpent/
 
  
* [http://www.music.cs.cmu.edu/aura/index.html 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://github.com/jprjr/miniflac - Single-file FLAC decoder with a push-style API
** https://sourceforge.net/projects/aurart
 
  
https://wiki.python.org/moin/Audio/
+
=== aptX ===
 +
* https://en.wikipedia.org/wiki/AptX - a family of proprietary audio codec compression algorithms currently owned by Qualcomm. The original aptX algorithm was developed in the 1980s by Dr. Stephen Smyth as part of his Ph.D. research at Queen's University Belfast School of Electronics, Electrical Engineering and Computer Science; its design is based on time domain ADPCM principles without psychoacoustic auditory masking techniques.
  
=== TMC ===
+
=== Codec 2 ===
* [https://github.com/emillon/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.
+
* [https://rowetel.com/codec2.html Codec 2] - Codec 2 is an open source speech codec designed for communications quality speech between 700 and 3200 bit/s. The main application is low bandwidth HF/VHF digital radio. It fills a gap in open source voice codecs beneath 5000 bit/s and is released under the GNU Lesser General Public License (LGPL). The Codec 2 project also contains several modems (FDMDV, COHPSK and mFSK) carefully designed for digital voice over HF radio; GNU Octave simulation code to support the codec and modem development; and FreeDV – an open source digital voice protocol that integrates the modems, codecs, and FEC. FreeDV is available as a GUI application, an open source library (FreeDV API), and in hardware (the SM1000 FreeDV adaptor).
 +
** https://github.com/drowe67/codec2
  
=== Bipscript ===
+
* [https://auphonic.com/blog/2018/06/01/codec2-podcast-on-floppy-disk/ Auphonic Blog: Codec2: a whole Podcast on a Floppy Disk] - [https://news.ycombinator.com/item?id=17383061]
* [http://bipscript.org/ 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.
 
** https://github.com/bipscript/bipscript
 
  
* http://bipscript.org/api
+
=== Lyra ===
 +
* [https://ai.googleblog.com/2021/02/lyra-new-very-low-bitrate-codec-for.html Google AI Blog: Lyra: A New Very Low-Bitrate Codec for Speech Compression] -
 +
** https://github.com/google/lyra
  
* http://bipscript.org/examples/controlplugins/index.html
+
* [https://www.cnx-software.com/2021/02/28/lyra-audio-codec-enables-3-kbps-bitrate-for-high-quality-voice-calls/ Lyra audio codec enables high-quality voice calls at 3 kbps bitrate] [https://news.ycombinator.com/item?id=26300229]
  
"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;"
+
=== STEM ===
 +
See [[DJing#Stems]]
  
local synth = Lv2.Plugin("http://calf.sourceforge.net/plugins/Monosynth", "Velo Bee")
+
=== WavPack ===
 
+
* [http://www.wavpack.com WavPack] - a completely open audio compression format providing lossless, high-quality lossy, and a unique hybrid compression mode. For version 5.0.0, several new file formats and lossless DSD audio compression were added, making WavPack a universal audio archiving solution.
local reverb = Lv2.Plugin("http://calf.sourceforge.net/plugins/Reverb")
+
** https://en.wikipedia.org/wiki/WavPack
reverb.setControl("amount", 0.0)
 
reverb.connect(synth)
 
 
 
local mainOutput = Audio.StereoOutput("main", "system:playback_1", "system:playback_2")
 
mainOutput.connect(reverb)
 
  
=== Sporth ===
+
=== QOA ===
* [https://paulbatchelor.github.io/proj/sporth Sporth] - short for SoundPipe fORTH, a small stack-based musical language, roughly inspired by stack languages like Forth and PostScript.
+
* https://github.com/phoboslab/qoa - QOA, The “Quite OK Audio Format” for fast, lossy audio compressionSingle-file MIT licensed library for C/C++See qoa.h for the documentation and format specification. [https://news.ycombinator.com/item?id=37047343]
** https://github.com/PaulBatchelor/Sporth
 
  
=== wcnt ===
+
More info at: https://phoboslab.org/log/2023/02/qoa-time-domain-audio-compressionAudio samples in WAV & QOA format can be found at: https://phoboslab.org/files/qoa-samples/
* [http://jwm-art.net/o7.php?p=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 ===
+
=== Descript ===
* [http://taopm.sourceforge.net/ 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.
+
* [https://descript.notion.site/Descript-Audio-Codec-11389fce0ce2419891d6591a68f814d5 Descript Audio Codec]
 +
** https://github.com/descriptinc/descript-audio-codec - State-of-the-art audio codec with 90x compression factor. Supports 44.1kHz, 24kHz, and 16kHz mono/stereo audio. This repository contains training and inference scripts for the Descript Audio Codec (.dac), a high fidelity general neural audio codec, introduced in the paper titled High-Fidelity Audio Compression with Improved RVQGAN.
  
 +
=== Older ===
 +
* https://github.com/temisu/ancient_format_decompressor - Decompression routines for ancient formats
  
=== Modus ===
+
=== DSD / SACD ===
* [https://sourceforge.net/projects/modusml/ Modus] is an open source, cross-platform C++ library which allows you to handle music from code.
+
* https://en.wikipedia.org/wiki/Direct_Stream_Digital - '''DSD''' is the name of a trademark used by Sony and Philips for their system of digitally recreating audible signals for the Super Audio CD ('''SACD'''). DSD uses pulse-density modulation encoding—a technology to store audio signals on digital storage media that are used for the SACD. The signal is stored as delta-sigma modulated digital audio, a sequence of single-bit values at a sampling rate of 2.8224 MHz (64 times the CD audio sampling rate of 44.1 kHz, but only at 1/32768 of its 16-bit resolution). Noise shaping occurs by use of the 64-times oversampled signal to reduce noise and distortion caused by the inaccuracy of quantization of the audio signal to a single bit. Therefore, it is a topic of discussion whether it is possible to eliminate distortion in one-bit delta-sigma conversion.
  
=== OpenAL ===
 
* https://www.openal.org/
 
  
* https://en.wikipedia.org/wiki/OpenAL
+
* YouTube: [https://www.youtube.com/watch?v=hXFIq11JAas&list=PLMbsmejHnP8EUvgweIcsnT5IL_O4T2bmj DSD Explained part 1] - At the 1996 AES Convention in Copenhagen the formerly CBS Research Lab introduced Direct Stream Digital, DSD for short, as a archive format that offered compact files while it contains sufficient information for conversion to sample rates as high as 352.8 kHz - unheard of in 1996. From there is went to SACD and now to DSD downloads. What is DSD all about? Hans Beekhuyzen explains.
  
=== AeonWave ===
 
* [http://www.adalin.com/manual/home.html 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://en.wikipedia.org/wiki/Super_Audio_CD - DSD on disc
* https://www.youtube.com/watch?v=Vjm--AqG04Y
 
  
* http://www.fmod.com/
+
* [https://tari.in/www/software/sacd/ Super Audio CD decoder] - a command-line application which takes a Super Audio CD source and extracts a 24-bit high resolution wave file. It handles both DST and DSD streams. The application reads the following input: SACD image files (*.iso), Sony DSF files (*.dsf), Philips DSDIFF files (*.dff). Supported output sample rates: 88.2KHz, 96KHz, 176.4KHz, 192KHz
 +
** https://launchpad.net/sacd
  
* https://www.audiokinetic.com/products/wwise/
 
  
 +
* [https://www.dcsltd.co.uk/support/what-is-dop-dsd-over-pcm/ What is DoP (DSD over PCM)?] - It involves taking groups of 16 adjacent 1-bit  samples from a DSD stream and packing them into the lower 16 bits of a 24/176.4 data stream. Data from the other channel of the stereo pair is packed the same way. A specific marker code in the top 8 bits identifies the data stream as DoP, rather than PCM. The resulting DoP stream can be transmitted through existing 24/192-capable USB, AES, Dual AES or SPDIF interfaces to a DoP-compatible DAC, which reassembles the original stereo DSD data stream COMPLETELY UNCHANGED. If something goes wrong and the data stream is decoded as PCM, the output will be low-level noise with faint music in the back ground, so it fails safely. This can happen if the computer erases the marker code by applying a volume adjustment.
  
* 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.
+
* [https://www.northstar.it/dsd-native-vs-dop/ DSD native vs DoP]
  
=== Creative / live coding ===
+
* [https://www.psaudio.com/pauls-posts/dop-isnt-pcm/13568/ DoP isn't PCM] - Paul McGowan, PS Audio
to resort
+
** [https://www.psaudio.com/pauls-posts/wading-into-it/ Wading into it]
 +
** [https://www.psaudio.com/pauls-posts/cramming-useless-information-into-your-head/ Cramming useless information]
 +
** [https://www.psaudio.com/pauls-posts/back-to-the-classroom/ Back to the classroom]
  
* 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.
+
* [https://issuetracker.google.com/issues/73956275 New HDMI audio output format: native DSD (one bit audio) passthrough for Android set-top boxes (feature request)] - Google Issue Tracker
  
* https://www.reddit.com/r/creativecoding
 
  
 +
* https://en.wikipedia.org/wiki/Digital_eXtreme_Definition - or '''DXD''', a digital audio format that originally was developed for editing high-resolution recordings recorded in DSD, the audio standard used on Super Audio CD (SACD). As the 1-bit DSD format used on SACD is not suitable for editing, alternative formats such as DXD or DSD-Wide must be used during the mastering stage. In contrast with DSD-Wide or DSD Pure which offers level, EQ, and crossfade edits at the DSD sample rate (64fs, 2.822 MHz), DXD is a PCM signal with 24-bit resolution (8 bits more than the 16 bits used for Red Book CD) sampled at 352.8 kHz – eight times 44.1 kHz, the sampling frequency of Red Book CD. The data rate is 8.4672 Mbit/s per channel – three times that of DSD64.
  
* https://en.wikipedia.org/wiki/Live_coding
 
  
* [http://toplap.org/ TOPLAP] is an organisation founded in 2004, to explore and promote live coding.
+
* https://www.blisshq.com/music-library-management-blog/2016/03/15/dsd-versus-dsf-versus-dff-what-mean-audio-libraries/
** http://toplap.org/wiki/Main_Page
 
  
  
* https://www.reddit.com/r/Algorave/
+
* https://github.com/torvalds/linux/blob/master/sound/usb/quirks.c#L1459
  
* CCC: [https://media.ccc.de/v/minilac16-linuxliveonstage Linux Live on Stage] - SuperBoucle, Carla, Faust & LV2 Plugins
 
  
* https://github.com/kindohm?tab=repositories
+
* https://github.com/SqueezeOnArch/dsdplay - DSD to Flac / PCM/DoP conversion and resampling
  
  
==== Fluxus ====
+
* https://github.com/DocMarty84/sacd - Converts SACD image files, Philips DSDIFF and Sony DSF files to 24-bit high resolution wave files. Handles both DST and DSD streams. THIS IS ONLY A CLONE OF THE OFFICIAL REPO!!!
* [http://www.pawfal.org/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 ====
+
=== MQA ===
* [http://impromptu.moso.com.au/ 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.
+
* https://en.wikipedia.org/wiki/Master_Quality_Authenticated
  
==== ixi ====
+
* https://www.whathifi.com/advice/mqa-audio-what-it-how-can-you-get-it
* [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 ====
+
=== AMR ===
* [https://tidalcycles.org/ 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.
+
* http://en.wikipedia.org/wiki/Adaptive_Multi-Rate_audio_codec
  
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.
+
* http://sourceforge.net/projects/opencore-amr/
  
* http://toplap.org/tidal/
+
=== Dolby Digital / AC-3 ===
 +
* https://en.wikipedia.org/wiki/Dolby_Digital - the name for audio compression technologies developed by Dolby Laboratories. Originally named Dolby Stereo Digital until 1994, except for Dolby TrueHD, the audio compression is lossy. The first use of Dolby Digital was to provide digital sound in cinemas from 35mm film prints; today, it is now also used for other applications such as TV broadcast, radio broadcast via satellite, DVDs, Blu-ray discs and game consoles. This format has different names: Dolby Digital, DD (an abbreviation for Dolby Digital, often combined with channel count; for instance, DD 2.0, DD 5.1), AC-3 (Audio Codec 3, Advanced Codec 3, Acoustic Coder 3. [These are backronyms. Adaptive Transform Acoustic Coding 3 is a separate format developed by Sony.]). ATSC A/52 is name of the standard.
  
* https://github.com/tidalcycles/tidal-midi
 
  
* https://github.com/musikinformatik/SuperDirt
 
  
==== Livecodelab ====
+
* https://en.wikipedia.org/wiki/Dolby_Digital_Plus - also known as Enhanced AC-3 (and commonly abbreviated as DD+ or E-AC-3, or EC-3) is a digital audio compression scheme developed by Dolby Labs for transport and storage of multi-channel digital audio. It is a successor to Dolby Digital (AC-3), also developed by Dolby, and has a number of improvements including support for a wider range of data rates (32 Kbit/s to 6144 Kbit/s), increased channel count and multi-program support (via substreams), and additional tools (algorithms) for representing compressed data and counteracting artifacts. While Dolby Digital (AC-3) supports up to 5 full-bandwidth audio channels at a maximum bitrate of 640 Kbit/s, E-AC-3 supports up to 15 full-bandwidth audio channels at a maximum bitrate of 6.144 Mbit/s. The full set of technical specifications for E-AC-3 (and AC-3) are standardized and published in Annex E of ATSC A/52:2012, as well as Annex E of ETSI TS 102 366 V1.2.1 (2008–08), published by the Advanced Television Systems Committee.
* [http://livecodelab.net/ 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 ====
 
* [http://www.pawfal.org/dave/index.cgi?Projects/Al%20Jazari 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 ====
 
* [http://openmusickontrollers.github.io/lv2/moony/ Moony.lv2] - Realtime Lua as programmable glue in LV2
 
** https://github.com/OpenMusicKontrollers/moony.lv2
 
  
* https://paste.open-music-kontrollers.ch/Moony_A2_x_A2_transistor.preset.lv2.tar.xz
+
* http://aften.sourceforge.net/
  
==== wavepot ====
+
=== Dolby AC-4 ===
* [http://wavepot.com/ wavepot] - a live javascript dsp editor. [https://news.ycombinator.com/item?id=7905910]
+
* https://en.wikipedia.org/wiki/Dolby_AC-4 - Dolby AC-4 is an audio compression standard supporting multiple audio channels and/or audio objects. Support for 5.1 channel audio is mandatory and additional channels up to 7.1.4 are optional. AC-4 provides a 50% reduction in bit rate over AC-3/Dolby Digital Plus.
  
* https://github.com/d0kt0r0/extramuros - language-neutral shared-buffer networked live coding system
+
=== Dolby TrueHD ===
  
 +
* https://en.wikipedia.org/wiki/Dolby_TrueHD - a lossless multi-channel audio codec developed by Dolby Laboratories which is used in home-entertainment equipment such as Blu-ray Disc players and A/V receivers. It is one of the successors to the Dolby Digital (AC-3) surround sound codec, which is used as the audio standard for the DVD-Video format. In this application, Dolby TrueHD competes with DTS-HD Master Audio, a lossless codec from DTS.
  
* http://studio.substack.net/wavepot
+
Dolby TrueHD uses Meridian Lossless Packing (MLP) as its mathematical basis for compressing audio samples. MLP is also used in the DVD-Audio format, but details of Dolby TrueHD and the MLP Lossless format as used on DVD-Audio differ substantially. A Dolby TrueHD bitstream can carry up to 16 discrete audio channels. Sample depths up to 24 bits/sample and audio sample rates up to 192 kHz are supported. Like the more common legacy codec Dolby Digital, Dolby TrueHD bitstreams carry program metadata. Metadata is separate from the coding format and compressed audio samples, but stores relevant information about the audio waveform and provides control over the decoding process. For example, dialog normalization and dynamic range compression are controlled by metadata embedded in the Dolby TrueHD bitstream. Similarly, a Dolby Atmos encoded Dolby TrueHD stream contains metadata to extract and place the objects in relevant positions. Dolby TrueHD is a variable bit-rate codec.
  
==== NoiseFunge ====
+
=== Dirac ===
* https://github.com/revnull/noisefunge
+
* https://github.com/kode54/dh - Dirac to Headphones, with convolution code
** YouTube: [https://www.youtube.com/watch?v=iW7kg6IL07E 808 miles high] - example
 
  
==== Gibber ====
+
=== ATRAC / Minidisc ===
* [http://gibber.mat.ucsb.edu/ 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.
 
* [http://charlie-roberts.com/gibber/ Gibber] - Creative Coding for JavaScript
 
* http://charlie-roberts.com/gibber/extensive-use-of-gibber-in-first-us-algorave/
 
  
==== Protoplug ====
+
* https://en.wikipedia.org/wiki/Adaptive_Transform_Acoustic_Coding - a family of proprietary audio compression algorithms developed by Sony. MiniDisc was the first commercial product to incorporate ATRAC in 1992. ATRAC allowed a relatively small disc like MiniDisc to have the same running time as CD while storing audio information with minimal loss in perceptible quality. Improvements to the codec in the form of ATRAC3, ATRAC3plus, and ATRAC Advanced Lossless followed in 1999, 2002, and 2006 respectively. Other MiniDisc manufacturers such as Sharp and Panasonic also implemented their own versions of the ATRAC codec. Sony has all but dropped the ATRAC related codecs in the USA and Europe and in their SonicStage powered 'Connect' Music Service (Sony's equivalent of iTunes) on 31 March 2008. However, it is being continued in Japan and various other countries.
* [http://www.osar.fr/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 ====
 
* http://worp.zevv.nl - Worp is an experimental sound / music / DSP engine written in LuaJIT, currently
 
** https://github.com/zevv/worp
 
  
==== Klangmeister ====
+
* https://lobste.rs/s/3jk1a4/dumping_minidisc_media
* [http://ctford.github.io/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. [https://news.ycombinator.com/item?id=11194080]
 
  
==== jazzari ====
 
* [https://jackschaedler.github.io/jazzari jazzari]- A programmable band in your browser. JavaScript.
 
** https://github.com/jackschaedler/jazzari
 
  
==== Wulfcode ====
+
* https://www.reddit.com/r/minidisc
* [https://github.com/echolevel/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 ====
 
* [http://foxdot.org/ 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.
 
** https://github.com/Qirky/FoxDot
 
  
==== Vult ====
+
* [https://stefano.brilli.me/blog/web-minidisc/ The Web MiniDisc Application - Use your old NetMD device in the browser] [https://news.ycombinator.com/item?id=26748528]
* http://modlfo.github.io/vult/overview/
 
  
==== Fragment ====
+
=== NICAM ===
* [https://www.fsynth.com/ Fragment] - a web-based spectral musical instrument driven by real-time visuals generated by its users from shared GLSL scripts.
+
* 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.
** https://github.com/grz0zrg/fsynth
 
  
 +
* http://www.bbc.co.uk/rd/blog/2016-01-35-million-people-didnt-notice-a-thing-dot-dot-dot [https://news.ycombinator.com/item?id=10937872]
  
* https://github.com/grz0zrg/fas - C Pixels-based additive, spectral, granular, subtractive and PM audio synthesizer implemented as a WebSocket server
+
=== Vinyl ===
  
 +
* https://en.wikipedia.org/wiki/Phonograph - a device, invented in 1877, for the mechanical recording and reproduction of sound. In its later forms, it is also called a '''gramophone''' (as a trademark since 1887, as a generic name in the UK since 1910), or, since the 1940s, a '''record player'''. The sound vibration waveforms are recorded as corresponding physical deviations of a spiral groove engraved, etched, incised, or impressed into the surface of a rotating cylinder or disc, called a "record". To recreate the sound, the surface is similarly rotated while a playback stylus traces the groove and is therefore vibrated by it, very faintly reproducing the recorded sound. In early acoustic phonographs, the stylus vibrated a diaphragm which produced sound waves which were coupled to the open air through a flaring horn, or directly to the listener's ears through stethoscope-type earphones.
  
* 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.
 
  
 +
* https://en.wikipedia.org/wiki/Phonograph_cylinder - the earliest commercial medium for recording and reproducing sound. Commonly known simply as "'''records'''" in their era of greatest popularity (c. 1896–1915), these hollow cylindrical objects have an audio recording engraved on the outside surface, which can be reproduced when they are played on a mechanical cylinder phonograph. In the 1910s, the competing disc record system triumphed in the marketplace to become the dominant commercial audio medium.
  
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.
+
* https://en.wikipedia.org/wiki/Phonograph_record - also known as a '''gramophone record''', especially in British English, or record) is an analog sound storage medium in the form of a flat disc with an inscribed, modulated spiral groove. The groove usually starts near the periphery and ends near the center of the disc. At first, the discs were commonly made from shellac; starting in the 1950s polyvinyl chloride became common. In recent decades, records have sometimes been called '''vinyl records''', or simply '''vinyl''', although this would exclude most records made until after World War II.
  
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.
+
* [http://americanhistory.si.edu/documentsgallery/exhibitions/hear-my-voice/6.html Sound Experiments at the Volta Laboratory - Hear My Voice | Albert H. Small Documents Gallery | Smithsonian's National Museum of American History] - [https://news.ycombinator.com/item?id=16965509]
  
  
* YouTube: [https://www.youtube.com/playlist?list=PLYhyS2OKJmqe_PEimydWZN1KbvCzkjgeI Fragment Synthesizer] - playlist [https://linuxmusicians.com/viewtopic.php?f=48&t=16668]
+
* https://en.wikipedia.org/wiki/Magnetic_cartridge - more commonly called a '''phonograph cartridge''' or '''phono cartridge''' or (colloquially) a '''pickup''', is an electromechanical transducer used in the playback of analog sound recordings called records on a record player, now commonly called a turntable because of its most prominent component but formally known as a phonograph in the US and a gramophone in the UK. The cartridge contains a removable or permanently mounted stylus, the tip - usually a gemstone like diamond or sapphire - of which makes physical contact with the record's groove. In popular usage and in disc jockey jargon, the stylus, and sometimes the entire cartridge, is often called the needle. As the stylus tracks the serrated groove, it vibrates a cantilever on which is mounted a permanent magnet which moves between the magnetic fields of sets of electromagnetic coils in the cartridge (or vice versa: the coils are mounted on the cantilever, and the magnets are in the cartridge). The shifting magnetic fields generate an electrical current in the coils. The electrical signal generated by the cartridge can be amplified and then converted into sound by a loudspeaker.
  
==== Praxis Live ====
+
* YouTube: [https://www.youtube.com/watch?v=3nsPGILzrRs The world's cheapest phono cartridge] - ubiquitous black red angular clone of Chuo Denshi 33 1/3 & 45 Cartridge+Stylus cartridge
* [http://www.praxislive.org/ 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.
 
** https://github.com/praxis-live/praxis-live
 
  
* YouTube: [https://www.youtube.com/watch?v=DGKrCdGIOx4 Praxis LIVE v2 - live coding 3D & shaders]
+
* YouTube: [https://www.youtube.com/watch?v=n-kMqckmaFs What Phono Cartridge Should I Get?]
  
=== JavaScript / Web Audio ===
+
* YouTube: [https://www.youtube.com/watch?v=_liLxKjw4sY DJ tips: needles]
* [[WebDev#Web Audio API]]
 
  
 +
* https://www.stylusplus.co.uk
  
* https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API
 
  
 +
* https://en.wikipedia.org/wiki/RIAA_equalization
  
* https://github.com/alemangui/web-audio-resources
+
* http://wow.heavylistening.com
  
  
* https://mohayonao.github.io
 
  
 +
* https://github.com/mitsuhito/CuttingRecordGenerator - To make "Record" with laser cutter. Uses Processing.
  
==== MIDI ====
 
* [https://github.com/qiao/euphony Euphony] - a web-based MIDI player and visualizer. [https://news.ycombinator.com/item?id=3999236] [https://news.ycombinator.com/item?id=5211416]
 
** http://qiao.github.io/euphony/
 
  
* http://muki.io/ - music streaming from MIDI and chiptunes [https://news.ycombinator.com/item?id=10305918]
+
* https://github.com/kallaballa/sndcut - a program the generates LP records from audio files - it generates either a SVG file for laser cutting or g-code for a 3-axis cnc mill. Its implementation is inspired by https://github.com/mitsuhito/CuttingRecordGenerator but it does some additional things (e.g.: RIAA equalization, to improve sound quality of the records.
  
* http://midi.space/ MIDI.space - WebMIDI and Audio Mashup for Finger Drumming[https://news.ycombinator.com/item?id=10267109]
+
=== Playlist formats ===
 +
* http://en.wikipedia.org/wiki/M3U
  
 +
playlist='play.m3u' ; if [ -f $playlist ]; then rm $playlist ; fi ; for f in *.mp3; do echo "$(pwd)/$f" >> "$playlist"; done
 +
  # create m3u playlist with absolute file paths
  
* http://sergimansilla.com/blog/dinamically-generating-midi-in-javascript/ [https://news.ycombinator.com/item?id=1884034]
 
** https://github.com/sergi/jsmidi
 
  
* https://github.com/mudcube/MIDI.js/
+
* http://en.wikipedia.org/wiki/PLS_(file_format) [http://forums.winamp.com/showthread.php?threadid=65772]
  
* http://grimmdude.github.io/MidiWriterJS/ [https://news.ycombinator.com/item?id=11340167]
+
* http://en.wikipedia.org/wiki/Advanced_Stream_Redirector - RTSP & MMS
  
* [http://greweb.me/2013/07/zound-live/ ZOUND Live] - Audio modular collaborative tracker using web technologies.
+
* http://www.xspf.org/ - xiph
** https://github.com/gre/zound-live
+
** http://en.wikipedia.org/wiki/XML_Shareable_Playlist_Format
  
 +
=== ADF ===
  
* [http://synthy.io/ 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.
+
* [https://adm.ebu.io/ EBU ADM Guidelines] - standardised metadata model for describing the technical properties of audio. ADM metadata can be attached to audio files to ensure the audio is correctly handled. These pages contain information to help you understand the ADM and provide examples and a reference to use it.
  
* http://foo-yc20.codeforcode.com/
+
* [https://www.itu.int/dms_pubrec/itu-r/rec/bs/R-REC-BS.2076-2-201910-I!!PDF-E.pdf Audio definition model.pdf]
  
==== Audiocogs ====
 
* [http://audiocogs.org/ Audiocogs] - JavaScript codecs, audio processing and other things that come with the territory.
 
** https://github.com/audiocogs - javascript and rust
 
  
==== DSP.js ====
+
* [https://lab.irt.de/getting-started-with-the-audio-definition-model/ How to get started with the Audio Definition Model – IRT Lab]
* 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 ====
+
* [https://lab.irt.de/open-source-for-open-object-based-audio-workflows/ Open-source for open object-based audio workflows – IRT Lab]
* [https://github.com/Tonejs/ 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.
 
  
* http://dev.abe.sh/block-chords/
 
  
* http://www.whitevinyldesign.com/solarbeat/
+
* https://github.com/ebu/ebu_adm_renderer - The EBU ADM Renderer, written in Python, is the reference implementation of EBU Tech 3388
  
==== Sawtooth.io ====
+
* https://github.com/ebu/libadm - The libadm library is a modern C++11 library to parse, modify, create and write ITU-R BS.2076 conformant XML. It works well with the header-only library libbw64 to write ADM related applications with minimal dependencies.
* https://www.sawtooth.io/ - basic filtering,and synthesis
 
  
==== tonal ====
 
* [http://danigb.github.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.
 
** https://github.com/danigb/tonal
 
  
==== Audiolet ====
+
* [https://www.bbc.co.uk/rd/publications/audio-definition-model-software Audio Definition Model Software - BBC R&D] - The Audio Definition Model is an ITU specification of metadata that can be used to describe object-based audio, scene-based audio and channel-based audio. It can be included in BWF WAVE files or used as a streaming format in production environments. The BBC Audio Toolbox is a suite of C++ libraries for manipulating object-based audio and ADM based BWF files.
* 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 ====
 
* https://dashersw.github.io/pedalboard.js/
 
  
==== Wad ====
+
* https://github.com/immersive-audio-live/ADM-OSC - An OSC dictionnary that implements the Audio Definition Model (ADM)
* 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 ====
 
* https://musiclab.chromeexperiments.com/Technology
 
  
* http://rumblesan.com/whorl/
+
=== SoundStream ===
 +
* https://github.com/wesbz/SoundStream -an implementation of this article: https://arxiv.org/pdf/2107.03312.pdf
  
=== Opimodus / OMN ===
+
== Playback ==
* http://opusmodus.com/ - $
+
See also [[Playback]], [[Sampling]], [[Distros#Media]]
  
=== Wolfram:Alpha ===
+
=== jplay2 ===
* http://tones.wolfram.com/
+
* 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.
** http://blog.stephenwolfram.com/2011/06/music-mathematica-and-the-computational-universe/
 
  
* https://www.wolframalpha.com/examples/Music.html
+
=== Random Parallel Player ===
 +
* https://github.com/diovudau/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: https://louigiverona.com/?page=projects&s=writings&t=linux&a=linux_randomhouse
  
* https://www.wolframalpha.com/examples/MusicTheory.html
+
=== loopnaut ===
 +
* https://github.com/soenkehahn/loopnaut - tool to play audio files in a loop (via JACK)
  
* https://reference.wolfram.com/language/ref/format/MIDI.html
+
=== mfl-gramophone ===
 +
* https://github.com/eeeeeta/mfl-gramophone - A simple Rust application to play audio, using JACK, when it receives commands via OSC.
  
=== GPU ===
+
=== SQA: the Stuttery QLab Alternative ===
* https://queue.acm.org/detail.cfm?id=2484010
+
* https://github.com/eeeeeta/sqa - This project aims to create an audio player & cue system for live shows and staged productions, à la Figure53's QLab. All its code is written in the Rust programming language, a new language that prevents memory unsafety and improves programming ergonomics. This one large repo contains many different crates that all help accomplish that aim.
  
== Graphics synthesis ==
+
=== PEAR ===
* https://en.wikipedia.org/wiki/Graphical_sound
+
* https://github.com/esologic/pear - a tool for sound installations. Take a directory with .wav files named in numeric order and play them over usb sound devices attached to the host computer over and over forever, looping all files once the longest one finishes.
  
* https://en.wikipedia.org/wiki/Sound-on-film
+
== Recording ==
 +
=== fmedia ===
 +
* [http://fmedia.firmdev.com/ fmedia] - a fast asynchronous media player/recorder/converter for Windows, Linux and FreeBSD. It provides smooth playback and recording even if devices are very slow. It's highly customizable and can be easily extended with additional plugins. Its low CPU & memory consumption saves energy when running on a notebook's battery. Play or convert audio files, record new audio tracks from microphone, save songs from Internet radio, and much more! fmedia is free and open-source project, and you can use it as a standalone application or as a library for your own software. fmedia can decode: .mp3, .ogg (Vorbis, Opus), .opus, .m4a/.mp4 (AAC, ALAC, MPEG), .mka/.mkv (AAC, ALAC, MPEG, Vorbis), .avi (AAC, MPEG), .aac, .mpc, .flac, .ape, .wv, .wav. fmedia can encode into: .mp3, .ogg, .opus, .m4a (AAC), .flac, .wav.
 +
** https://github.com/stsaz/fmedia
  
 +
=== phiola ===
 +
* https://github.com/stsaz/phiola - fast audio player, recorder, converter for Windows, Linux & Android. Its low CPU consumption conserves the notebook/phone battery. Its fast startup time allows using it from custom scripts on a "play-and-exit" or "record-and-exit" basis. It's completely portable (all codecs are bundled) - you can run it directly from a read-only flash drive. It's a free and open-source project, and you can use it as a standalone application or as a library for your own software.
  
* [http://www.umatic.nl/tonewheels_historical.html Tonewheels] Derek Holzer
+
=== arecord ===
** [https://docs.google.com/presentation/d/1wJT9IBPvnhqEB398L5V0t2uDx_PuMTLiBEVAbaBPgVU/edit#slide=id.p A Brief History of Optical Synthesis] - Derek Holzer - Macumbista.net
+
* http://alsa.opensrc.org/Arecord
 +
 +
  arecord -D hw:0 -f cd test.wav
  
* [http://www.creativeapplications.net/news/a-brief-history-of-optical-synthesis/ A Brief History of Optical Synthesis] - written by Greg J. Smith, 2017
+
=== audio-recorder ===
 +
* https://launchpad.net/~audio-recorder
  
 +
=== rtutil ===
 +
* https://github.com/ashafq/rtutil - Simple CLI PCM audio file recorder/player. A small weekend project under 10K LOC using C++20 utilizing RtAudio and Libsndfile.
  
* https://120years.net/tag/optical-synthesis/
+
=== Ecasound ===
 +
* [http://www.eca.cx/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.
  
=== 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 ===
+
ecasound -a:1,2 -i jack -o jack -a:1 -elv2:http://calf.sourceforge.net/plugins/Compressor,0,1,0,0,0,0,0.015625,20,0.01,2000,1,1,0,0,1,1 -a:2 -elv2:http://calf.sourceforge.net/plugins/Limiter,0,1,0.587231,0,0,0,0,0,0,0,0,0.0625,0.1,1000,1,1,0,0.5,4
* 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.
 
  
* http://minioramics.blogspot.co.uk/
 
** http://www.gold.ac.uk/news/mini-oramics/ [https://news.ycombinator.com/item?id=12001721]
 
  
=== 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.
+
* [https://freeshell.de/~bolangi/cgi1/nama.cgi/00home.html Nama] - manages multitrack recording, mixing and mastering using the Ecasound audio processing engine developed by Kai Vehmanen.
 +
** [http://juliencoder.de/nama/index.html Juliencoder / Nama - Contributions to and use of Nama]
  
=== Coagula ===
+
* [http://freshmeat.sourceforge.net/projects/emi_1_5 Ecasound Mastering Interface] - a Python front end to ecasound. It looks a lot like Rackmount effect and can be used to create an Ecasound Chain Setup while playing with parameters in real time. It supports mixing, recording, filtering, and processing and can export to ECS files. It supports all ecasound options, chain operators, and controllers.
* [https://www.abc.se/~re/Coagula/Coagula.html 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 ===
+
* [http://visecas.sourceforge.net/ Visecas] - a graphical user interface for Ecasound (http://eca.cx/ecasound), a software package written by Kai Vehmanen (k@eca.cx) which is designed for multitrack audio processing. It starts Ecasound as a child process and communicates via a pipe using Ecasound's InterActive Mode (IAM) commands.
* [http://d00m.org/~someone/graphospect/ Graph-O-Spect] - This program embeds images into sound files. It creates a .wav file whose spectograph matches the input .ppm file.
 
  
=== SpectroBits ===
 
* [http://www.g200kg.com/jp/software/spectrobits.html SpectroBits] - Spectrogram Synthesizer
 
  
== Graphical programming ==
 
* https://en.wikipedia.org/wiki/Visual_programming_language
 
  
=== Pure Data ===
+
* [http://das.nasophon.de/ecaplugin ecaplugin.py] - a tool to generate the unwieldy ecasound command lines for LADSPA and LV2 plugins from Ardour sessions or JACK Rack configurations.
See [[Pure Data]]
+
** https://github.com/dsacre/ecaplugin
  
* [https://puredata.info/ 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.
+
=== Meterec ===
** https://puredata.info/dev
+
* [http://meterec.sourceforge.net/ 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.
  
=== Max/MSP ===
+
=== jack_capture ===
* https://cycling74.com/ - $
+
* [https://github.com/kmatheussen/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.
  
  
* https://en.wikipedia.org/wiki/Max_(software)
+
* http://mein-neues-blog.de/2015/02/07/mein-neues-blog-deb-repository/#recjack
 +
** http://mein-neues-blog.de/category/recjack/
  
  
* http://maxobjects.com/
+
* https://github.com/danielappelt/caPiture - uses jack_capture to headlessly multitrack record the input of the Behringer XR18 Mixer. For now, it is hardcoded to work with the XR18.
  
* http://www.maxforlive.com/intro.php
+
=== jrec2 ===
 +
* [http://gareus.org/oss/jrec/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.
  
* https://www.reddit.com/r/MaxMSP
+
=== jack-record ===
 +
* [http://rd.slavepianos.org/?t=rju&e=jack-record.ad jack-record] is a light-weight JACK capture client to write an arbitrary number of channels to disk.
  
 +
=== jack_playrec ===
 +
* https://github.com/HoerTech-gGmbH/jack_playrec - provides an interface for synchronous recording/playback via the JACK Audio Connection Kit.
  
* http://gareus.org/oss/oggzmax/start
+
=== screcord.lv2 ===
 +
* https://github.com/brummer10/screcord.lv2
  
* http://repmus.ircam.fr/omax/home
+
=== jamRecord.lv2 ===
 +
* https://github.com/tdufret/jamRecord.lv2 - jam session recorder to only keep on file the last x minutes of a jam
  
 +
=== Freeze ===
 +
* https://github.com/nickolas360/freeze - an LV2 plugin for freezing tracks in a digital audio workstation—that is, temporarily rendering a track as audio to reduce CPU/DSP load, as tracks with large chains of CPU-heavy effects can make buffer underruns (xruns) quite common. Some DAWs like Ardour support track freezing to a certain extent, but Ardour, for example, cannot freeze MIDI tracks.
  
* http://imtr.ircam.fr/imtr/CataRT
+
=== QJackRcd ===
* http://ismm.ircam.fr/catart/
+
* [https://orouits.github.io/qjackrcd/ qjackrcd] - a simple stereo recorder for Jack with few features as silence processing for automatic pause, file splitting, background file post-processing. It can be used with QJackCtl.
 +
** https://github.com/orouits/qjackrcd
  
 +
=== audio coffin ===
 +
* https://github.com/UoC-Radio/audio-coffin - A simple audio recorder/logger on top of Jack, libsndfile and libsoxr
  
* https://sourceforge.net/projects/clef/
+
=== timemachine ===
 
+
* [http://plugin.org.uk/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.
* http://ftm.ircam.fr/index.php/Gabor
+
** http://www.64studio.com/manual/audio/timemachine - A JACK application that can retrospectively record audio.
 +
** https://github.com/swh/timemachine
  
* http://www.audibleoddities.com/twerk/?p=40
+
=== Rotter ===
 +
* [https://www.aelius.com/njh/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.
  
 +
=== listener ===
 +
* https://github.com/folkertvanheusden/listener - will listen for sound and as soon as a certain loudness level is reached, it will start recording.
  
 +
=== asak ===
 +
* https://github.com/chaosprint/asak - A cross-platform audio recording/playback CLI tool with TUI, written in Rust. The goal is to be an audio Swiss Army Knife (asak), like SoX but more interative and fun.
  
* http://www.imagimuse.net/index.php/en/audio-technique/randolon
+
== Transcoding ==
 +
* https://en.wikipedia.org/wiki/Transcoding - the direct digital-to-digital conversion of one encoding to another,[1] such as for movie data files (e.g., PAL, SECAM, NTSC), audio files (e.g., MP3, WAV), or character encoding (e.g., UTF-8, ISO/IEC 8859). This is usually done in cases where a target device (or workflow) does not support the format or has limited storage capacity that mandates a reduced file size,[2] or to convert incompatible or obsolete data to a better-supported or modern format.
  
* https://github.com/lindseymysse/pingseqmax
+
* http://wiki.hydrogenaud.io/index.php?title=Transcoding
  
* http://www.dynamictonality.com/spectools.htm
+
* [https://src.infinitewave.ca/ SRC Comparisons] - converting sample frequency
  
 +
=== SoundConverter ===
 +
* [http://soundconverter.org/ SoundConverter] - 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.
  
* http://www.virtual440.com/downloads
 
  
 +
=== Perl Audio Converter ===
 +
* [http://vorzox.wix.com/pacpl 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.
  
* http://registeringdomainnamesismorefunthandoingrealwork.com/2011/03/euclidean-sequencer-max4live-version-now-here/
 
  
* http://philarcher.net/main/downloads.html
+
=== Secret Rabbit Code ===
 +
* [http://libsndfile.github.io/libsamplerate/ 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.
 +
** https://github.com/libsndfile/libsamplerate
  
 +
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.
  
 +
=== fre:ac ===
 +
* [https://www.freac.org fre:ac] - a free audio converter and CD ripper with support for various popular formats and encoders. It currently converts between MP3, MP4/M4A, WMA, Ogg Vorbis, FLAC, AAC, WAV and Bonk formats. With fre:ac you easily rip your audio CDs to MP3 or WMA files for use with your hardware player or convert files that do not play with other audio software. You can even convert whole music libraries retaining the folder and filename structure.The integrated CD ripper supports the CDDB/freedb online CD database. It will automatically query song information and write it to ID3v2 or other title information tags.
 +
** https://github.com/enzo1982/freac - a free and open source audio converter. It supports audio CD ripping and tag editing and converts between various audio file formats.
  
==== v.001 ====
 
* [http://001.vade.info/ 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 ===
+
=== audiomap ===
* [http://repmus.ircam.fr/openmusic/home 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.
+
* [https://sites.google.com/site/nevion/projects/audiomap audiomap] - 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.
** https://en.wikipedia.org/wiki/OpenMusic
 
  
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.
+
=== resample ===
 +
* https://ccrma.stanford.edu/~jos/resample/
  
* [http://repmus.ircam.fr/ml2 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.
+
=== transfercoder ===
 +
* https://github.com/DarwinAwardWinner/transfercoder - Transfer and transcode your music at the same time
  
=== Integra Live ===
 
* [http://integra.io/integralive/ Integra Live] - a modular environment for interactive sound transformation and synthesis. It was developed at Birmingham Conservatoire's Integra Lab and part-funded by the Culture programme of the European Union. Integra Live is designed with musicians in mind An application optimised for the process of experimentation, discovery, refinement and performance.
 
** https://sourceforge.net/projects/integralive/
 
** https://en.wikipedia.org/wiki/Integra_Live
 
  
=== Open Sound World ===
+
=== AudioMove ===
* [http://osw.sourceforge.net/ 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.
+
* [https://public.msli.com/lcs/audiomove/index.html AudioMove] - a simple, easy to use GUI-based batch audio file copy-and-conversion program.
  
=== Bespoke ===
 
* [http://hihigogo.com/bespoke/ BESPOKE] - A new modular DAW for OSX. Now in Alpha.
 
** https://github.com/awwbees/BespokeSynth - A software modular synth. Work in progress.
 
  
* https://www.reddit.com/r/BespokeSynth - Out of date documentation.
+
=== flacsync ===
 +
* https://github.com/cmcginty/flacsync - Recursively mirror a directory tree of FLAC audio files to AAC or OGG.
  
* YouTube: [https://www.youtube.com/watch?v=9lDeOurioBA&list=PLuq5ei63ya8h0r1ac4XiEAhlLQxFsAUFg Bespoke Tutorials]
 
* YouTube: [https://www.youtube.com/watch?v=VummOWGorp4&list=PLuq5ei63ya8iorW2FokKKcgIxpXDBafuH Bespoke Chats]
 
  
=== AlgoScore ===
+
=== lackey ===
* [http://kymatica.com/Software/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.
+
* https://github.com/cassava/lackey - Automatically create and manage a lower-quality mirror of your music library
  
=== vvvv ===
 
* [https://vvvv.org Vvvv – a live-programming environment for easy prototyping and development]. Windows only. [https://news.ycombinator.com/item?id=11842176]
 
** https://vvvv.org/documentation/audio
 
  
* https://en.wikipedia.org/wiki/vvvv
+
=== caudec ===
 +
* [http://caudec.cocatre.net/ caudec] - a command-line utility for GNU/Linux and OS Ⅹ that transcodes (converts) audio files from one format (codec) to another. It leverages multi-core CPUs with lots of RAM by using a ramdisk, and running multiple processes concurrently (one per file and per codec). It is Free Software, licensed under the GNU General Public License.
  
=== IanniX ===
+
=== ffcvt ===
* [http://www.iannix.org/en/ 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.
+
* [https://sfxpt.wordpress.com/2015/08/02/ffcvt-ffmpeg-convert-wrapper-tool/ ffcvt] - ffmpeg convert wrapper tool
** https://github.com/iannix/IanniX
+
** https://github.com/suntong/ffcvt
  
=== Geosonix ===
+
=== garrett ===
* [http://www.geosonix.com/ 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.
+
* https://github.com/hannesbraun/garrett - converts the given audio files into the "Waveform Audio File Format" (WAVE) with a static bit depth of 16 bits. You can choose between two output sample rates: 44100 Hz and 48000 Hz. The supported input formats are:   WAVE    MP3    FLAC    AIFF
** https://bitbucket.org/chrisgr99/geosonix
 
  
=== Fugio ===
+
== Analysis ==
* [http://www.bigfug.com/software/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.
+
=== Sonic Visualiser ===
** https://github.com/bigfug/Fugio
+
* [http://www.sonicvisualiser.org Sonic Visualiser] - an application for viewing and analysing the contents of music audio files. The aim of Sonic Visualiser is to be the first program you reach for when want to study a musical recording rather than simply listen to it. We hope Sonic Visualiser will be of particular interest to musicologists, archivists, signal-processing researchers and anyone else looking for a friendly way to take a look at what lies inside the audio file. Sonic Visualiser is Free Software, distributed under the GNU General Public License (v2 or later) and available for Linux, OS/X, and Windows. It was developed at the Centre for Digital Music at Queen Mary, University of London.
 +
** https://code.soundsoftware.ac.uk/projects/sonic-visualiser
  
=== PWGL ===
+
Don't forget to install at least the QM vamp plugins.
* [http://www2.siba.fi/PWGL/index.html 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 ===
+
* http://www.sonicvisualiser.org/videos.html
* [http://www.infomus.org/eyesweb_ita.php 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 ===
+
* YouTube: [https://www.youtube.com/watch?v=TmA8iAts9V8 2 7 Sonic Visualiser Tutorial 2011]
* [http://cabel.sourceforge.net/ 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 ===
+
=== Baudline ===
* [https://github.com/bgribble/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.
+
* [http://www.baudline.com/ Baudline] - 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.
  
=== MOD ===
+
* https://en.wikipedia.org/wiki/Baudline
* 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.
 
  
* https://github.com/moddevices/mod-app
+
* http://www.baudline.com/manual/
* https://github.com/moddevices/mod-ui
 
  
* http://libremusicproduction.com/tools/mod-app
+
* http://baudline.blogspot.co.uk/
  
=== Blokdust ===
+
* https://ileriseviye.wordpress.com/2012/03/20/baudline-how-to-solve-the-all-input-devices-disabled-error-on-ubuntu-gnulinux/
* [https://blokdust.com Blokdust] - an open source web music app allowing you to build synths, manipulate samples and create self-playing sound environments.
 
  
* https://www.reddit.com/r/blokdust/
 
  
=== AlgAudio ===
+
* https://groups.google.com/forum/#!msg/baudline
* 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 ===
+
=== Friture ===
* [http://web.archive.org/web/20110425102929/http://www.arts-project.org 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.
+
* [http://friture.org/ Friture ] - a real-time audio analyzer. It works on Windows, Mac OS X and Linux. It is free and open source.
** https://en.wikipedia.org/wiki/aRts
+
** https://github.com/tlecomte/friture
  
 +
=== SoundRuler ===
 +
* [http://soundruler.sourceforge.net/main/ SoundRuler] - 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.
  
=== SynFactory ===
+
Binary download needs 32-bit libxp to be installed.
* [http://syntiac.com/synfactory.html 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
 
  
 +
=== BRP-PACU ===
 +
* [http://sourceforge.net/projects/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.
  
=== SDT / SkAT ===
+
DSP
  
* [http://soundobject.org/SDT/ Sound Design Toolkit] - '''SDT''', available for Max and PureData, running on Mac OS X and Windows.
+
* https://en.wikipedia.org/wiki/BRP-PACU
** https://github.com/SkAT-VG/SDT
 
  
 +
* https://electronjunkie.wordpress.com/category/brp-pacu/
  
* https://github.com/SkAT-VG/SkATStudio
+
=== MDFourier ===
** https://www.researchgate.net/publication/280086598_Physically_informed_car_engine_sound_synthesis_for_virtual_and_augmented_environments
+
* [https://junkerhq.net/MDFourier/ MDfourier: An audio analysis tool for gaming hardware] - an open source software solution created to compare audio signatures and generate a series of graphs that show how they differ. The software consists of two separate programs, one that produces the signal for recording from the console and the other that analyses and displays the audio comparisons. The information gathered from the comparison results can be used in a variety of ways: to identify how audio signatures vary between systems, to detect if the audio signals are modified by audio equipment, to find if modifications resulted in audible changes, to help tune emulators, FPGA implementations or mods, etc. [https://news.ycombinator.com/item?id=37001589]
 +
** https://github.com/ArtemioUrbina/MDFourier
  
=== StudioFactory ===
+
=== Open Sound Meter ===
* [http://syntiac.com/studiofactory.html 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.
+
* [https://opensoundmeter.com/ Open Sound Meter] - real time crossplatform dual-FFT measurement analysis tool for sound system tuning.
 +
** https://github.com/psmokotnin/osm
  
=== AudioMulch ===
+
=== japa ===
* [http://www.audiomulch.com/ 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. - $
+
* [http://wiki.linuxaudio.org/apps/all/japa Japa (JACK and ALSA Perceptual Analyser)] - a 'perceptual' or 'psychoacoustic' audio spectrum analyser.
  
=== Reaktor ===
 
* http://www.native-instruments.com/en/products/komplete/synths/reaktor-6/ - $
 
  
* https://en.wikipedia.org/wiki/Reaktor
+
=== Spek ===
 +
* [http://spek.cc/ 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.
  
* YouTube: [https://www.youtube.com/watch?v=A4wKuS-VI0s Macros & Modules - REAKTOR Explained]
 
  
* YouTube: [https://www.youtube.com/watch?v=vtn63OYo70E NI Reaktor 101: Building a Synth (FFL!)]
+
=== GTKWave ===
 +
* https://github.com/gtkwave/gtkwave - a fully featured GTK+ based wave viewer for Unix and Win32 which reads LXT, LXT2, VZT, FST, and GHW files as well as standard Verilog VCD/EVCD files and allows their viewing.
  
* YouTube: [https://www.youtube.com/watch?v=t56WNB2BDsE Reaktor: A Long Term Relationship] - Benn Jordan
 
  
=== Isadora ===
+
=== zrtstr ===
* http://troikatronix.com/isadora/about/ - $
+
* [https://indiscipline.github.io/post/zrtstr-eliminate-faux-stereo/ zrtstr] - 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.
  
=== Bidule ===
+
=== DFasma ===
* http://www.plogue.com/products/bidule/ - $
+
* [http://gillesdegottex.github.io/dfasma/ DFasma] - 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.
** https://en.wikipedia.org/wiki/Bidule
+
** https://github.com/gillesdegottex/dfasma
  
=== audulus ===
+
=== Pydiogment ===
* http://audulus.com/ - ~£30
+
* https://github.com/SuperKogito/pydiogment - aims to simplify audio augmentation. It generates multiple audio files based on a starting mono audio file. The library can generates files with higher speed, slower, and different tones etc.
  
* http://patchstorage.com/explore/?search_query=&tax_platform%5B%5D=audulus&orderby=date&wpas_id=my-form&wpas_submit=1
+
=== audiomentations ===
 +
* https://github.com/iver56/audiomentations - A Python library for audio data augmentation. Inspired by albumentations. Useful for machine learning.
  
=== MUX Modular ===
+
=== ASAnnotation ===
* [http://www.mutools.com/mux-product.html 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. - $
+
* [http://recherche.ircam.fr/equipes/analyse-synthese/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.
  
== Hardware DSP ==
+
=== harmony-analyser ===
=== Axoloti Patcher ===
+
* [http://harmony-analyser.org/ harmony-analyser] - a set of visual tools for music harmony analysis of WAV/MIDI input, powered by JHarmonyAnalyser library
* http://www.axoloti.com/axoloti-patcher/
+
** https://github.com/lacimarsik/harmony-analyser
  
hardware - $
+
=== AudioVideoAnalysis ===
 +
* https://github.com/alexarje/AudioVideoAnalysis
 +
** https://github.com/fourMs/AudioVideoAnalysis
  
* YouTube: [https://www.youtube.com/watch?v=fIUvLu10jEE Axoloti: Let's Make A $75 Drum Machine] - Benn and Gear
+
=== Toscanalyzer ===
 +
* [http://www.toscanalyzer.org/index.php/en/ Toscanalyzer] - 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.
  
=== Kyma ===
+
Java. Doesn't work for me.
* [http://kyma.symbolicsound.com/kyma-sound-design-environment Kyma] - hardware and visual software environment for creative sound design, live performance, and scientific exploration. In Kyma, a user programs a multiprocessor DSP by graphically connecting modules on the screen of a Macintosh or Windows computer. $$
 
** http://kyma.symbolicsound.com/library/
 
** https://en.wikipedia.org/wiki/Kyma_(sound_design_language)
 
  
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.
+
=== SPAN ===
 +
* http://www.voxengo.com/product/span/ - windows/mac vst
  
=== Patchblocks ===
+
=== Raven Lite ===
* http://www.patchblocks.com/content/16-patchblocks-products
+
* http://www.birds.cornell.edu/brp/RavenLite/RavenLiteReadMe.htm - an interactive sound visualization tool for novice through advanced users who want to visualize sound in exciting ways. Windows and Mac. Lite version is freware
  
 +
=== pyAudioAnalysis ===
 +
* https://github.com/tyiannak/pyAudioAnalysis pyAudioAnalysis - Python library covering a wide range of audio analysis tasks, including: feature extraction, classification, segmentation and visualization.
  
* http://www.patchblocks.com/content/7-software
+
=== libroda ===
 +
* [https://librosa.org librosa] - a python package for music and audio analysis. It provides the building blocks necessary to create music information retrieval systems.
 +
** https://github.com/librosa
  
* https://bitbucket.org/mindflood/patchblocks/issues
+
=== QLoud ===
 +
* [http://gaydenko.com/qloud/ QLoud] - tool to measure a loudspeaker frequency response and distortions
 +
** https://github.com/molke-productions/qloud - an attempt of porting QLoud to QT5
  
== Modular softsynths ==
+
=== freqresp ===
See also [[#SunVox]]
+
* https://github.com/flok99/freqresp - Calculates a frequency response diagram
  
=== gAlan ===
+
=== Room EQ Wizard ===
* [http://galan.sourceforge.net/ gAlan] - The Graphical Audio Language. A modular synthesiser - drum-machine - sequencer - effects-unit for Linux and Win32. Like Buzz.
+
* [https://www.roomeqwizard.com 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.
  
=== AlsaModularSynth ===
+
* https://linuxmusicians.com/viewtopic.php?f=18&t=17971&p=97173
* [http://alsamodular.sourceforge.net/ 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
 
  
* YouTube: [https://www.youtube.com/watch?v=S6FkOKSOs-k AlsaModularSynthesizer - 1 getting started]
+
=== QLoud ===
 +
* [http://gaydenko.com/qloud/ QLoud] - tool to measure loudspeaker frequency and step responses and distortions
 +
** https://github.com/mincequi/qLouder
  
* https://github.com/kenrestivo/Linux-synth-patches/tree/master/ams-patches
+
=== PORC ===
 +
* https://github.com/greenm01/porc - '''Python Open Room Correction''', PORC now includes mixed-phase compensation (see below)! DSP Loudspeaker-Room correction filter wizard; transfer function modeling and equalization by fixed-pole parallel filters. Algorithm ported to Python by Mason A. Green, based on the work of Dr. Balazs Bank: http://home.mit.bme.hu/~bank/parfilt/
  
=== ams-lv2 ===
+
=== PostQC ===
* [https://objectivewave.wordpress.com/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.
+
* [https://sourceforge.net/projects/postqc/ PostQC] - a tool for measuring, logging and reporting audio levels for professional audio production and post production studios.
** YouTube: [https://www.youtube.com/watch?v=LWfF71NerkQ ams-lv2 - demo]
 
  
=== avw.lv2 ===
+
=== impulseresponse.py ===
* [https://github.com/harryhaaren/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.
+
* [https://afewthingz.com/impulseresponse impulseresponse.py] - Get a reverb impulse response (IR), from a frequency sweep
 +
** https://github.com/josephernest/impulseresponse.py
  
=== Fomp ===
+
=== Gist ===
* [http://drobilla.net/software/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.
+
* https://github.com/adamstark/Gist - a C++ based audio analysis library
  
=== controlfilter.lv2 ===
+
=== timbreIDLib ===
* https://github.com/x42/controlfilter.lv2
+
* https://github.com/wbrent/timbreIDLib - a library of audio analysis externals for Pure Data. The classification external [timbreID] accepts arbitrary lists of audio features and attempts to find the best match between an input feature and previously stored training instances. The library can be used for a variety of real-time and non-real-time applications, including sound classification, sound searching, sound visualization, automatic segmenting, ordering of sounds by timbre, key and tempo estimation, and concatenative synthesis.
  
* https://github.com/x42/plumbing.lv2
+
=== musii-kit ===
 +
* https://github.com/otsob/musii-kit - A collection of tools for computational musicology, especially using Jupyter Notebooks for music analysis. This has been greatly inspired by the example notebooks associated with the excellent book Fundamentals of Music Processing.
  
=== Omnifono ===
+
== Mixers ==
* [http://intonarumori.sourceforge.net/omnifono.html Omnifono] is a mixture of various simple utilities in one plugin: amplifier, panner, noise generators, etc. LV2.
+
=== Command-line mixers ===
 +
==== amixer ====
 +
* [http://alsa.opensrc.org/Amixer amixer] - a command-line program for controlling the mixer in the ALSA soundcard driver. amixer supports multiple soundcards
  
=== BLOP ===
+
[http://linux.die.net/man/1/amixer amixer] -c 0 | pcregrep "control"
* [http://blop.sourceforge.net/ 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.
+
  # shows all audio channels
  
* Bandlimited Sawtooth Oscillator
+
==== JackMiniMix ====
* Bandlimited Square Oscillator
+
* [https://www.aelius.com/njh/jackminimix/ JackMiniMix] - 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.
* Bandlimited Variable Width Pulse Oscillator
+
** https://github.com/njh/jackminimix/
* 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
 
  
* [http://drobilla.net/software/blop-lv2/ 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.
+
==== kbd2jackmix ====
 +
* 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.
  
=== Omins ===
+
==== jack_switch ====
* [http://www.nongnu.org/om-synth/omins.html 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.
+
* https://github.com/MaurizioB/jack_switch - switches outputs from any input client
** http://git.drobilla.net/cgit.cgi/omins.lv2.git/about/
 
  
=== SpiralSynthModular ===
+
==== jack-balancer ====
* [http://www.pawfal.org/Software/SSM/ 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.
+
* https://github.com/OldShatterham/jack-balancer - provides rudimentary volume and balance control via MIDI controls.
  
* http://www.pawfal.org/SpiralSynth/ - old
+
=== ncurses mixers ===
 +
==== alsamixer ====
 +
* http://alsa.opensrc.org/alsamixer
 +
** https://en.wikipedia.org/wiki/alsamixer
  
=== vModSynth ===
+
==== aumix ====
* [https://rafalcieslak.wordpress.com/2013/02/10/vmodsynth-1-0-released/ vModSynth] -a modular software synthesizer for Linux. It is not intended to be as convenient as possible, but to resemble the look & feel of a real, analog, modular software synthesizer.  
+
* http://jpj.net/~trevor/aumix.html
** https://github.com/rafalcieslak/vmodsynth
 
  
=== Zyne ===
+
=== Graphical mixers ===
* [https://github.com/belangeo/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.
+
==== Kmix ====
 +
* [https://www.kde.org/applications/multimedia/kmix/ 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
  
=== Synth-A-Modeler ===
+
Recommended.
* [https://github.com/eberdahl/SaM 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.
 
  
* https://github.com/ptrv/SaM-Designer - GUI
+
==== QasMixer ====
 +
* [http://xwmw.org/qastools/applications/qasmixer.html QasMixer] - a desktop mixer application for ALSA's "Simple Mixer Interface".
  
=== TX Modular ===
+
==== QasHctl ====
* [http://www.palemoonrising.co.uk/ 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.
+
* [http://xwmw.org/qastools/applications/qashctl.html QasHctl] - a mixer for ALSA's more complex "High level Control Interface".
** https://github.com/gusano/TXModular
 
  
=== SynthForge ===
+
==== alsamixergui ====
* https://sourceforge.net/projects/synthforge/
+
* [https://web.archive.org/web/20090205035610/http://www.iua.upf.es:80/~mdeboer/projects/alsamixergui/ alsamixergui] - a FLTK based frontend for alsamixer. It is written directly on top of the alsamixer source, leaving the original source intact, only adding a couple of ifdefs, and some calls to the gui part, so it provides exactly the same functionality, but with a graphical userinterface.
  
=== VCV Rack ===
+
==== gnome-alsamixer ====
* https://vcvrack.com [https://linuxmusicians.com/viewtopic.php?f=24&t=17405]
+
* [https://apps.ubuntu.com/cat/applications/gnome-alsamixer gnome-alsamixer]
** https://github.com/VCVRack/Rack
 
  
 +
==== volti ====
 +
* https://github.com/gen2brain/volti - an GTK+ application for controlling ALSA volume from system tray/notification area.
  
* http://cdm.link/2017/12/step-one-wire-vcv-rack-free-modular-software/
+
Buggy, forgets card sometimes, menu/preferences don't open.
  
 +
==== Xmixer ====
 +
* https://www.freshports.org/audio/xmixer audio/xmixer: Audio mixer (gtk and Xlib) for X11R6
  
* https://github.com/VCVRack/AudibleInstruments
+
==== XMMIX ====
 +
* [https://www.amb.org/xmmix/ XMMIX] - Motif Audio Mixer
  
* https://github.com/leopard86/LOGinstruments
+
==== NewMixer ====
 +
* https://github.com/jatinchowdhury18/NewMixer - An audio mixing tool that allows the user to visualize audio sources by their location in space rather than as channels on a mixing board.
  
* https://github.com/modlfo/VultModules
+
==== DAMC ====
 +
* https://github.com/amurzeau/damc - Audio mixing console for Jack also supporting external devices and OSC remote control.
  
* https://github.com/antoniotuzzi/nysthi
+
==== Mixxc ====
 +
* https://github.com/Elvyria/Mixxc - a minimalistic and customizable volume mixer, created to seamlessly complement desktop widgets.  Currently, it supports only pulseaudio and pipewire (through the pulseaudio interface, by utilizing libpulseaudio to receive audio events.
  
* 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
+
=== Web mixer ===
 +
==== alsa-json-gateway ====
 +
* https://github.com/fulup-bzh/AlsaJsonGateway - Provides an HTTP REST interface to ALSA mixer for HTML5 UI support. The main objective of AJG is to decouple ALSA from UI, this especially for Music Oriented Sound boards like Scarlett Focurite and others.
  
* https://github.com/mhetrick/hetrickcv
+
=== JACK mixers ===
 +
==== Non Mixer ====
 +
* [http://non.tuxfamily.org/wiki/index.php?page=Non%20Mixer Non Mixer]
 +
** [http://non.tuxfamily.org/mixer/doc/MANUAL.html non-mixer manual]
 +
** http://non.tuxfamily.org/wiki/UsingMidiWithNon - doesn't handle MIDI directly, requires CV or OSC conversion
  
* https://github.com/luckyxxl/vcv_luckyxxl
+
/strip/[STRIP_NAME]/[MODULE_NAME]/[PARAMETER_NAME]
  
* https://github.com/dekstop/vcvrackplugins_dekstop
+
See also [https://github.com/original-male/non/blob/60059f40054db40a77754670cdae2e9517df3568/mixer/src/midi-mapper.C non-midi-mapper] [https://github.com/original-male/non/issues/106]
  
* https://github.com/antoniograzioli/Autodafe-Drums
+
==== mx2482 ====
 +
* 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/Strum/Strums_Mental_VCV_Modules/tree/master/Releases/Linux
+
==== JackMix ====
 +
* [http://www.arnoldarts.de/jackmix/ JackMix] - Matrix Mixer with dials for Jack. Not quite MIDI controllable?
 +
** https://github.com/kampfschlaefer/jackmix
  
* http://www.autodafe.net/virtual-instruments/vcv-rack-modules.html - register to download, free with €5 suggested donation
+
==== jack_mixer ====
 +
* https://github.com/jack-mixer/jack_mixer
 +
** https://github.com/dsheeler/jack_mixer - old
 +
** https://github.com/relascope/jack_mixer - old. 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.
  
* https://github.com/stellare-modular/vcv-link
 
  
=== XSRDO Patchwork Modular System ===
+
* https://github.com/sen87/jack_mixer_cc - jack_mixer companion that provides a CLI for channel adjustments.Creates a JACK-client that controls jack_mixer via MIDI Control Change Messages.
* [http://xsrdo.net16.net/ 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.
 
** http://xsrdo.blogspot.co.uk/
 
  
=== Kamioooka ===
+
==== jackmixdesk ====
* [http://www.g200kg.com/en/software/kamioooka.html 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.
+
* [https://sourceforge.net/projects/jackmixdesk 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.
  
=== Cynthia ===
+
==== JackMaster ====
* [http://ninecows.dk/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.
+
* [http://69b.org/cms/software/jackmaster JackMaster] - "Master Console" for the jack-audio-connection-kit. Number of inputs/subs and screen layout can only be changed by recompiling.
** YouTube: [https://www.youtube.com/watch?v=heN0lgDkRGM CYNTHIA VERSION 1. 0 by NineCows]
 
  
=== KX77FREE ===
+
==== qtjmix ====
* [http://kx77free.free.fr/English-page.html KX77FREE] - Windows VST synths
+
* https://github.com/ycollet/qtjmix - A Jack mixer GUI
  
* Kx-PolyM-CSE - Vintage modular polyphonic synthesizer with CV/GATE sequencer and CS70M* emulation.
+
==== jackmaster ====
* Kx-PolyMod - Vintage modular polyphonic synthesizer with stereo SF2 player. To build analog 70's leads!
+
* https://github.com/linuxmao-org/jackmaster - - A "Master Console" for the jack-audio-connection-kit
* 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 ==
+
==== jack-volume ====
=== Stegosaurus ===
+
* https://github.com/voidseg/jack-volume - JACK client for controlling the volume of multiple audio channels via OSC.
* https://github.com/thunderox/stegosaurus
 
** https://github.com/milkmiruku/stegosaurus - with patches and fixed build
 
  
* YouTube: [https://www.youtube.com/watch?v=KF1Ii8lnuH0 Stegosaurus LV2 plugin]
+
==== JJack ====
 +
* https://github.com/MrLetsplay2003/JJack -  JJack Audio Mixer
  
* [http://deliriumdecrypted.blogspot.co.uk/2012/11/stegosaurus-lv2-analogue-style.html Stegosaurus LV2 - Analogue style synthesized drum machine for linux]
+
==== injector ====
 +
* https://github.com/dastax/injector - A simple mixer application for jack audio written in Qt4
  
* Kick - C4
+
==== MU1 ====
* Snare - D4
+
* [http://kokkinizita.linuxaudio.org/linuxaudio/zita-mu1-doc/quickguide.html MU1] - 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.
* Closed hat - E4
 
* Open hat - F4
 
  
Currently uses MIDI channel 1 rather than 10. [https://github.com/thunderox/stegosaurus/issues/6] patch in milkmiruku/stegosaurus
+
==== audio-multiplexer ====
 +
* https://github.com/knoellle/audio-multiplexer - interlace two streams of speech while maintaining comprehension.
  
=== DrumSynth ===
+
==== EQUIS ====
* https://sourceforge.net/projects/drumsynth - original
+
* https://codeberg.org/obsoleszenz/EQUIS - a 8 Channel DJ/Performance Mixer for Linux & JACK. It offers an EQ inspired by the Playdifferently Model1. This means each channel has a highpass/lowpass and sweepable bell eq for smooth eqing. To fullfill further filtering needs, all channels can be optionally assigned to one of two subfilters. Those subfilters are inspired by the Xone:96 DUAL VCF Filter system. For effects EQUIS offers 2 send/return channels. This way you can send each channel to an external effect. EQUIS offers 2 seperate CUE systems for pre-listening the different channels or main signal on headphones. This project is meant to be extended and played around with. Thanks to FAUST it's pssible to tweak the filters/eqs and whole DSP chain relatively easy. Also you can write your own midi mapping to integrate your own MIDI controller.
  
* [http://distrho.sourceforge.net/ports.php Juced Plugins] - We took DrumSynth and EQinox and made them work better and in LV2 format.
+
* [https://media.ccc.de/v/sonoj2023-23001-equis media.ccc.de - EQUIS] - Sonoj Convention 2023
** [https://web.archive.org/web/20160315215101?http://www.anticore.org/jucetice/?page_id=7 Original homepage]
 
** https://github.com/DISTRHO/DISTRHO-Ports/tree/master/ports/drumsynth - Drumsynth is a JUCEified VST/LV2 port of the excellent Paul Kellet's DrumSynth.
 
  
Features:
+
=== LV2 mixers ===
* 32 voices polyphonic
+
Some of these are also standalone.
* 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
 
  
 +
==== xfade.lv2 ====
 +
* https://github.com/x42/xfade.lv2 - an audio-plugin for stereo cross-fading 2 x 2 input channels to 2 output channels.
  
* [https://musical-artifacts.com/artifacts/93 DrumSynth lv2 presets pack]
+
==== balance.lv2 ====
 +
* 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.
  
=== Rudolf 556 ===
+
==== sonejostudios ====
* [http://www.nongnu.org/ll-plugins/lv2/rudolf556.html 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.
+
* https://github.com/sonejostudios/LiveFader - LiveFader is a very simple stereo passive volume fader
  
=== Smack ===
 
* [https://web.archive.org/web/20120120164154/http://smack.berlios.de/ 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.
 
** http://sourceforge.net/projects/smack.berlios/
 
  
"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." [http://linux-audio.4202.n7.nabble.com/Is-there-a-linux-drum-synth-td80472.html]
+
* https://github.com/sonejostudios/StereoKnot - Simple Stereo Through with Volume Slider
  
=== KickMaker ===
 
* [http://teragonaudio.com/KickMaker.html KickMaker] - a synthesizer designed specifically to create good kick drum sounds. It uses four independent oscillators and a wide range of effects, allowing one to create perfectly customized beats.
 
** https://github.com/teragonaudio/KickMaker
 
  
Required VST SDK 2 to build
+
* https://github.com/sonejostudios/AudioThrough16 - very simple 16-channel audio through
  
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?
+
* https://github.com/sonejostudios/StereoSwitch - A simple Stereo Switch (send stereo signal to output A or to output B)
  
=== Windows VST ===
 
* http://bedroomproducersblog.com/2010/09/27/bpb-freeware-studio-coolest-free-drum-machine-vsti-plugins/
 
  
==== Freqatic ====
+
* https://github.com/sonejostudios/ABswitchStereo - Stereo source comparison tool.
* http://www.g200kg.com/jp/software/freqatic.html - Windows VST.
 
  
==== Drumatic VE ====
 
* [http://www.e-phonic.com/plugins/drumatic_ve.php 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 ====
+
* https://github.com/sonejostudios/Mixer4x - A simple 4-channel stereo mixer. The main goal is to use it as a submixer on a 4 channel track, but you can use it everywhere you need a small 4 channel stereo mixer.
* [http://www.vst4free.com/free_vst.php?id=1059 CM-505] - a 12 voice drum synth. Windows VST.
 
  
==== TS-808 ====
 
* [http://tactilesounds.blogspot.co.uk/p/tactile-synthesizers.html 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 ====
+
* https://github.com/sonejostudios/LiveMixer - Stereo Mixer Strip with 2 Aux Sends (post Fader)
* [http://www.experimentalscene.com/software/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 ====
 
* [http://www.technowitch.nl/vst-synths.html 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 ====
+
* https://github.com/sonejostudios/XYMatrix - XY Surround Matrix for one Source (Mono Input) with 4 Outputs (Left, Right, Surround Left, Surround Right) and Position Lock.
* [http://www.technowitch.nl/vst-synths.html 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 ====
 
* [http://distocore.net/bazz_murda.html DC Bazz::Murda] - VSU/AU bass/kick synth. Windows VST.
 
  
==== EXD-80 ====
+
==== BalanceGain / BalanceWidth ====
* [http://www.thirdharmonic.net/exd80-free-vst-drum-synth/ 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.
+
* https://github.com/johnflynnjohnflynn/BalanceGain - Stepped gain audio plugin for Balance Mastering
  
==== KICKWOrK ====
+
* https://github.com/johnflynnjohnflynn/BalanceWidth - Stepped stereo width plugin for Balance Mastering
* [http://wokwave.com/old-plugins/html/kickwork_drum_synthesizer.html 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 ====
+
==== vopa ====
* 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.
+
* https://github.com/ycollet/vopa - Volume Panning Midi CC controlable LV2 plugin
  
==== ErsDrums ====
 
* https://www.kvraudio.com/product/ersdrums_by_andreas_ersson - Windows VST
 
** YouTube: [https://www.youtube.com/watch?v=4FTfS_NQQjc ErsDrums - Free Drum Vsti]
 
  
==== Kick Me Too ====
+
==== x42-mixtrix ====
* https://theodosynthsarchive.wordpress.com/category/kmt/ - Windows VST.
+
* [http://x42-plugins.com/x42/x42-mixtrix mixtri(x)] - a matrix mixer and trigger processor intended to be used with the oscilloscope, but also useful for other applications.
** YouTube: [https://www.youtube.com/watch?v=d4jLY628gIg Kick Me Too by ODO SYNTHS]
+
** https://github.com/x42/mixtri.lv2
  
==== Psy-Drums ====
+
==== matrixmixer.lv2  ====
* https://www.kvraudio.com/product/psy_drums_by_odo_synths - Windows VST
+
* https://github.com/x42/matrixmixer.lv2 - matrixmixer.lv2 is a matrix mixer :)It is available as LV2 plugin and standalone JACK-application.
** YouTube: [https://www.youtube.com/watch?v=_t0vDfwjZnI PSY Drums 5 Odo Synths]
 
  
==== Optik ====
+
==== BadAmp ====
* [http://www.psychicmodulation.com/plugins.html 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.
+
* https://github.com/badosu/BadAmp - A simple amplifier LV2 plugin
  
==== DR-Fusion V2 ====
+
==== BAmp ====
* YouTube: [https://www.youtube.com/watch?v=8eh7zuuS9_c DR-Fusion V2 by ODO Synths]
+
* https://github.com/sjaehn/BAmp - Simple amplifier LV2 plugin using BWidgets GUI
  
==== daBUMZ ====
+
==== Simple Amplifier ====
* [http://wokwave.com/old-plugins/html/dabumz_drumsynthesizer_vst_plu.html 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.
+
* https://github.com/ul/simple-amplifier - A very simple example of LV2 plugin built in Zig
  
==== easy-toolz.de drums ====
+
==== Plujain ====
* [http://www.easytoolz.de/drums.html easy-toolz.de drums]
+
* https://github.com/Houston4444/plujain-plugins - utility LV2 plugins. The fadeswitch is an audio mono switch that progressly fade between the 2 channels outs. The triswitch follow the same principle with 3 outputs. For the Quadriswitch, guess !
** 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 ==
+
==== Kn0ck0ut ====
to resort
+
* [https://www.kvraudio.com/product/kn0ck0ut-by-st3pan0va 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.
 +
** YouTube: [https://www.youtube.com/watch?v=tKqbaEzZFy8 KnOckOut by St3pan0va]
  
* https://en.wikipedia.org/wiki/Software_synthesizer
+
* https://github.com/jeremysalwen/kn0ck0ut-LV2 - Port of kn0ck0ut to LV2 plugin
  
* [http://lesitedeburnie.free.fr The Best Free Synths] - big list, various platforms
+
==== intersect-lv2 ====
 +
* https://github.com/sboukortt/intersect-lv2 - an LV2 plugin which, given a stereo audio stream, “expands” it to three channels. Everything that is present in both input channels will be in the center channel of the output, and what is specific to each channel will be in the corresponding output channel. This can be useful, for example, to rediscover some of your favorite music by hearing things that you had never noticed before. (With that said, note that it does not necessarily work equally well on all songs, depending on how they were mixed.)
  
=== jack_miniFMsynth ===
+
==== sm.lv2 ====
* [http://users.suse.com/~mana/jack.html 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.
+
* https://github.com/nettings/sm.lv2 - A simple speaker management LV2 plugin with global master volume and per-channel trim, delay, and low-shelf.This plugin lets you optimize a stereo or multichannel speaker system to your listening environment.
  
To compile jack_miniFMsynth just type
+
==== tinyamp.lv2 ====
  cc -o jack_miniFMsynth jack_miniFMsynth.c -ljack -lasound -lm
+
* https://github.com/x42/tinyamp.lv2 - minimalistic gain control with small MOD GUI
  
jack_miniFMsynth takes several parameters:
+
==== mod-volume-lv2 ====
  <pre>jack_miniFMsynth <MIDI channel> <FM> <harmonic> <subharmonic> <transpose> <a> <d> <s> <r>
+
* https://github.com/moddevices/mod-volume-lv2 - LV2 volume plugin
 
 
<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</pre>
 
  
=== cursynth ===
+
==== SendMixer ====
* [https://github.com/falkTX/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.
+
* https://github.com/SpotlightKid/sendmixer - A stereo channel strip with one master gain and two pre/post-fader sends
  
=== ZynAddSubFX ===
+
==== Xfade1to2st ====
* [http://zynaddsubfx.sourceforge.net/ 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.
+
* https://github.com/zwaba/Xfade1to2st - lv2 plugin utility , crossfade L R in to 2 L R out
  
* http://www.linuxsynths.com/ZynaddsubfxBanksDemos/zynaddsubfx.html
+
=== Other mixers ===
 +
==== ladspa-xfade ====
 +
* https://github.com/diizy/ladspa-xfade - LADSPA 2-channel crossfader
  
 +
==== BackgroundMusic ====
 +
* https://github.com/kyleneideck/BackgroundMusic - Mac [https://news.ycombinator.com/item?id=11514281]
  
* http://zynaddsubfx.sourceforge.net/Doc/
+
==== faderratic ====
 +
* [https://delamanchavst.wordpress.com/2013/10/24/faderratic 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. Windows VST.
  
* http://zynaddsubfx.sourceforge.net/doc/PADsynth/PADsynth.htm
+
==== push-to-talk-xcb-alsa ====
 +
* https://github.com/xkr47/push-to-talk-xcb-alsa - Push-To-Talk using global hotkey in X11, muting/unmuting an alsa mixer recording control. Unmutes the microphone when you press the configured hotkey (by default Hyper_L + Shift_R, and mutes it back when you release it. It also monitors the muting state and fixes it in case it changes unexpectedly, for example when plugging a headset into your laptop and the headset mute status happens to be wrong.
  
* [http://zynaddsubfx.sourceforge.net/doc/automations/parameter-automation-documentation.html An Introduction to the ZynAddSubFX Macro System]
+
== Metering ==
 +
* http://www.soundonsound.com/sos/jun00/articles/metring.htm
  
old interface:
+
* https://en.wikipedia.org/wiki/VU_meter
* YouTube: [https://www.youtube.com/watch?v=6NHfn2nr2Lw UV#01 ZynAddSubFX Modulation Madness]
 
* YouTube: [https://www.youtube.com/watch?v=OKcUDiD3H8g UV#02 Making a Reese Bass in ZynAddSubFX]
 
* YouTube: [https://www.youtube.com/watch?v=3UWADcXOuP4 UV#03 Synthesizing a String Pad with ZynAddSubFX]
 
* YouTube: [https://www.youtube.com/watch?v=wYXi0jx_t14 UV#04 Making a Water Stream SFX in ZynAddSubFX]
 
  
zyn-fusion interface:
+
* https://en.wikipedia.org/wiki/Peak_programme_meter
* YouTube: [https://www.youtube.com/watch?v=axtVERiqUIw UV#19 Synthesizing an FM Growl Bass with Zyn-Fusion and Ardour using multiband processing]
 
* YouTube: [https://www.youtube.com/watch?v=Bf-8JkGVeoY QR#01 Scratched Vinyl]
 
  
  
* [http://home.gna.org/zyn/ 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://en.m.wikipedia.org/wiki/K-system - an audio level measuring technique proposed by mastering engineer Bob Katz in the paper "An integrated approach to Metering, Monitoring and Levelling". It proposes a studio monitor calibration system and a set of meter ballistics to help engineers produce consistent sounding music while preserving appropriate dynamic range.[
  
 +
* [https://www.digido.com/portfolio-item/level-practices-part-2/ Level Practices (Part 2) - Digido.com]
  
* 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.
+
=== JACK ===
 +
==== JackMeter ====
 +
* [https://www.aelius.com/njh/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 ====
 +
* [http://plugin.org.uk/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.
  
* https://github.com/mruby-zest/mruby-zest-build - the source of the Zyn-Fusion user interface.
+
==== Ebumeter ====
 +
* [http://kokkinizita.linuxaudio.org/linuxaudio/ebumeter-doc/quickguide.html 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.
  
=== Yoshimi ===
+
==== mod-peakmeter ====
* [http://yoshimi.sourceforge.net/ 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.
+
* https://github.com/moddevices/mod-peakmeter
  
* https://github.com/ahlstromcj/yoshimi-cookbook
+
==== JACK bitmeter ====
 +
* [http://devel.tlrmx.org/audio/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.
  
=== WONDER ===
+
==== jack-peak-meter ====
* [http://sourceforge.net/projects/swonder/ 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.
+
* https://github.com/gethiox/jack-peak-meter - terminal-based peak-meter for JACK audio system writen in Go
  
* https://github.com/sensestage/swonder
+
==== vu-meter ====
 +
* https://github.com/xkr47/vu-meter - Audio VU meter for JACK with any number of channels.This is heavily inspired by the cadence-jackmeter included in the Cadence tools. I rewrote it in Rust, with freely configurable amount of channels through commandline parameters. It uses XCB i.e. the X11 protocol for graphics. It does NOT currently autoconnect to any source.
  
* https://github.com/dvzrv/wonder
+
==== jack_led_peak ====
 +
* https://github.com/fps/jack_led_peak - A small jack utility to drive LEDs based on the peak values of the inputs. This was developed primarily for use on a raspberry pi4 (the default line offsets), but it should be usable on any linux system that has some LEDs attached via GPIO lines addressable by libgpiod.
  
=== AUBE ===
+
==== vu-meter ====
* [http://www.metadecks.org/software/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.
+
* https://github.com/xkr47/vu-meter - Audio VU meter for JACK with any number of channels. This is heavily inspired by the cadence-jackmeter included in the Cadence tools. I rewrote it in Rust, with freely configurable amount of channels through commandline parameters. It uses XCB i.e. the X11 protocol for graphics. Thus if your desktop is using Wayland, you will also have to configure Xwayland for this program to work.
  
=== Helm ===
+
=== LV2 ===
* [http://tytel.org/helm/ Helm] - a free polyphonic synth with lots of modulation
+
==== meters.lv2 ====
** https://github.com/mtytel/helm
+
* https://github.com/x42/meters.lv2 - a collection of audio-level meters with GUI in LV2 plugin format.
  
* YouTube: [https://www.youtube.com/watch?v=mo87q2nOwpQ HELM Synth]
+
==== modmeter.lv2 ====
 +
* https://github.com/x42/modmeter.lv2 - A simple audio meter with numeric display for http://moddevices.com/ constsing of a Digital Peak Meter with 15dB/sec falloff with user-resettable peak-hold and a RMS loudness meter (600ms)
  
=== Sorcer ===
+
==== loudness-meter.lv2 ====
* [http://openavproductions.com/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.
+
* https://github.com/pedalboard/loudness-meter.lv2 - measures the loudness of the signal and exposes it as midi messages
  
=== Crazynth ===
+
==== traKmeter ====
* [http://intonarumori.sourceforge.net/crazynth.html 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).
+
* [http://www.mzuther.de/en/software/trakmeter/ traKmeter] - Loudness meter for correctly setting up tracking and mixing levels.
 +
** https://www.kvraudio.com/product/trakmeter-by-mzuther
 +
** https://github.com/danielappelt/traKmeter
  
=== sfxr ===
+
==== K-Meter ====
* [http://www.drpetter.se/project_sfxr.html 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.
+
* [http://www.mzuther.de/en/software/kmeter/ K-Meter] - Implementation of a K-System meter according to Bob Katz’ specifications.
** https://github.com/grimfang4/sfxr
 
  
* [http://smbolton.com/linux.html 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.
+
== Visualisation ==
 +
See [[Visuals]], [[Lighting]]
  
=== Bfxr ===
+
=== Oscilloscope ===
* [http://www.bfxr.net/ 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.
+
* https://www.reddit.com/r/oscilloscopemusic
** https://github.com/increpare/bfxr
 
  
=== Jfxr ===
+
* YouTube: [https://www.youtube.com/channel/UCECl4aNz5hvuRzW5fgCOHKQ Jerobeam Fenderson] - channel
* [http://jfxr.frozenfractal.com/ 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. [https://news.ycombinator.com/item?id=8128291]
+
** YouTube: [https://www.youtube.com/watch?v=rtR63-ecUNo How To Draw Mushrooms On An Oscilloscope With Sound]
** https://github.com/ttencate/jfxr
+
** YouTube: [https://www.youtube.com/watch?v=Zp5iATlMIbM Oscilloscope Music VST Plugins by Soundemote (Mushroom / Nyquist / Spiral Generator)]
  
=== rogue ===
+
==== XXY Oscilloscope ====
* [https://github.com/timowest/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
+
* [https://dood.al/oscilloscope XXY Oscilloscope] - WebGL, version 1.0, April 2017, by Neil Thape [https://news.ycombinator.com/item?id=16297176]
4 LFOs, 20 Modulation matrix slots, Effects: Chorus, Phaser, Delay and Reverb, Qt4 based UI
 
  
=== Bristol Collection ===
+
==== woscope ====
* [http://bristol.sourceforge.net/ 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.
+
* [http://m1el.github.io/woscope/ woscope]
 +
** https://github.com/m1el/woscope
  
* [http://www.dacr.hu/monobristol/ monoBristol] - Gui for Bristol Synthesiser
+
==== xoscope ====
 +
* [http://xoscope.sourceforge.net xoscope] - a digital oscilloscope for Linux
  
=== JuceOPLVSTi ===
+
==== x42-scope ====
* [http://bsutherland.github.io/JuceOPLVSTi/ JuceOPLVSTi] - VST instrument which emulates the Yamaha OPL sound chip used in PC sound cards from the 90s.
+
* [http://x42-plugins.com/x42/x42-scope x42-scope] - aka sisco.lv2, audio oscilloscope with variable time scale in LV2 plugin format.
** https://github.com/bsutherland/JuceOPLVSTi
+
** https://github.com/x42/sisco.lv2
  
* YouTube:[https://www.youtube.com/watch?v=yU0CWQ66Z28 JuceOPLVSTi, OPL2 emulator!]
+
==== jack_oscrolloscope ====
 +
* [http://das.nasophon.de/jack_oscrolloscope 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.
  
=== hexter ===
+
==== jack-scope ====
* [http://dssi.sourceforge.net/hexter.html hexter] - Yamaha DX7 modeling DSSI plugin
+
* [http://rd.slavepianos.org/?t=rju&e=jack-scope.ad 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.
  
=== Dexed ===
+
==== QOscC ====
* [http://le-son666.com/asb2m10/ 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.
+
* [https://sourceforge.net/projects/heaven/files/Audio%20Applications/Jack%20Related/QOscC/ QOscC] - a highly flexible and configurable software Oscilloscope with a large number of features. This includes support for any number of audio devices (ALSA or OSS), each with any number of channels. Each scope display can be configured individually to different display types and variants. e.g. you can chose from standard y-t mode (as on an usual oscilloscope), xy mode (e.g. for measuring the phase shift between two signals) of the FFT mode (to view a spectrum plot of the signal). This software is intended for electronic hobyists, who cannot afford a hardware oscilloscope or need a simple spectrum analyzer as well as for musicans for doing basic signal analysis.
 +
** https://github.com/majorx234/qoscc
  
=== LegaSynth ===
+
==== jack-analyser ====
* [http://freecode.com/projects/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.
+
* https://github.com/alxdb/jack-analyser - an Osciloscope for the Jack Audio API
** https://sourceforge.net/projects/cheesetronic/files/LegaSynth/
 
  
=== Digits ===
+
==== DSSI Oscilloscope ====
* [http://www.extentofthejam.com/ 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
+
* [https://lwn.net/Articles/138021 DSSI Oscilloscope] - old
  
* http://www.kvraudio.com/product/digits-by-extent-of-the-jam/downloads
+
==== Oscilloscope ====
 +
* https://github.com/kritzikratzi/Oscilloscope - Oscilloscope for Mac/Windows written in OF
  
=== nekobee / Nekobi ===
+
==== PrettyScope ====
* [https://github.com/gordonjcp/nekobee nekobee] - A softsynth recreation of a classic single-oscillator bass monosynth. DSSI.
+
* [https://www.soundemote.com/products/prettyscope PrettyScope] - by Soundemote - $
  
* https://github.com/DISTRHO/Nekobi - a DPF'ied build of nekobee, allowing LV2 and VST builds of the plugin
+
==== OsciStudio ====
 +
* [https://oscilloscopemusic.com/oscistudio.php OsciStudio] - Convert 3d shapes and animations to sounds (through obj files or blender addons). Modify sounds through a small plugin system. Animate parameters through timelines. Works on Mac OS and Windows (only intel/amd processors). Livecoding in C++ (no STL) $
  
=== Minaton ===
+
=== Spectrum graph ===
* [https://github.com/thunderox/Minaton Minaton] - LV2 plugin - A monophonic, subtractive, beefy analogue style bass and lead synth.
+
See also [[Visuals]]
  
=== triceratops ===
+
==== Cava ====
* [https://sourceforge.net/projects/triceratops/ triceratops] - A polyphonic virtual analogue synthesizer plugin.
+
* [http://karlstav.github.io/cava/ cava] - Console-based Audio Visualizer for Alsa
** https://github.com/thunderox/triceratops
+
** https://github.com/karlstav/cava [https://news.ycombinator.com/item?id=9954639]
  
* http://www.linuxsynths.com/TriceratopsPatchesDemos/triceratops.html
+
==== X.A.V.A. ====
 +
* https://github.com/nikp123/xava - X11 Audio Visualizer for ALSA, also supports audio input from WASAPI (Windows), PortAudio, Pulseaudio, SHMEM, FIFO (MPD), and sndio. Fork of Cava.
  
=== WhySynth ===
+
==== Visualiser ====
* [http://smbolton.com/whysynth.html 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.
+
* https://github.com/BlankParenthesis/visualiser - A low level audio visualiser program for Linux using Wayland, Vulkan, and Pipewire, written in Rust. Inspired by X.A.V.A. Supports arbitrary shapes (bars, radial, etc, using 2D vertex formats with attributes.
  
* http://www.linuxsynths.com/WhySynthBanksDemos/whysynth.html
+
==== leafpipe ====
 +
* https://github.com/Half-Shot/leafpipe - A visualiser program that can control LED light sources, such as Nanoleaf Shapes via the output of PipeWire (Linux audio stack).
  
* https://github.com/kenrestivo/Linux-synth-patches/tree/master/whysynth-patches
+
==== catnip ====
 +
* https://github.com/noriah/catnip - terminal audio visualizer for linux/unix/macOS/windows*
  
=== Wolpertinger ===
+
==== HTML5 Audio Visualizer ====
* [http://tumbetoene.tuxfamily.org/index.php?category=1 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."
+
* https://github.com/wayou/HTML5_Audio_Visualizer - An audio spectrum visualizer built with HTML5 Audio API
  
* http://www.linuxsynths.com/WolpertingerPatchesDemos/wolpertinger.html
+
=== Spectrogram ===
 +
==== xjackfreak ====
 +
* https://github.com/johnhldavis/xjackfreak - audio analysis/EQ tool for GNU/Linux/X11/Jack Audio Connection Kit. It can display the FFT of any input, modify it and output the result.
  
=== 6PM ===
+
==== spectrojack ====
* [http://sourceforge.net/projects/mv-6pm/ 6PM] - a phase modulation (PM) synthesizer made of six oscillators.
+
* [http://sed.free.fr/spectrojack/ spectrojack] - A little spectrogram/audiogram/sonogram/whatever for jack. gtk 2 and fftw 3.
  
=== Add64 ===
+
==== Spectrum 3D ====
* [http://sourceforge.net/projects/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.  
+
* [http://spectrum3d.sourceforge.net/ 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.
 +
** https://sourceforge.net/projects/spectrum3d/
  
=== DIN Is Noise ===
+
==== xspect3d ====
* [http://dinisnoise.org/ 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.
+
* [http://xspect3d.sourceforge.net/ xspect3d] - a bespoke, radical drawing algorithm and buffer scheduling paradigm, to render a 3D sonic landscape in real time, at up to several hundred frames a second.
** http://en.wikipedia.org/wiki/Din_(din_is_noise)
 
  
* http://dinisnoise.org/download - evaluation binaries for Windows/Mac, full source available to compile for Linux!
+
==== wolf-spectrum ====
 +
* https://github.com/pdesaulniers/wolf-spectrum - a spectrogram plugin. It can be built as an LV2 or VST plugin and as a standalone Jack application.
  
* http://dinisnoise.org/hotkeys - very much needed
+
==== Jack Live Spectrum ====
 +
* [http://consciousness.mywebcommunity.org/programming/jack-live-spectrum/ Jack Live Spectrum] - a small (only one file) C program that runs on Linux that will display a frequency spectrum of the live streaming sound as a floating down animation. Below are some still screenshots.
  
=== NoiseScaper ===
+
==== rtfi ====
* https://sourceforge.net/projects/noisescaper/ - Synthesizer and sound generator based on the sounds of strange attractors (Lorenz and Roessler). Can create unusual industrial sounds for the experimentalists out there.
+
* https://github.com/jcarrano/rtfi - Audio visualization & analysis using the RTFI, mono JACK client
  
=== PHASEX ===
+
==== Spectrogram ====
* [https://github.com/williamweston/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.
+
* https://musiclab.chromeexperiments.com/Spectrogram - WebGL
** http://www.linuxjournal.com/node/1000425
 
  
* https://github.com/kenrestivo/Linux-synth-patches/tree/master/phasex
+
==== SuperSpectrogram ====
 +
* https://github.com/james34602/SuperSpectrogram - Super spectrogram Qt cross platform!
  
=== amsynth ===
+
==== Photosounder Spiral ====
* [http://amsynth.github.io/ 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.
+
* [http://photosounder.com/spiral/ Photosounder Spiral] - a music analysis plugin. It's a fresh take on spectral analysis focused on allowing you to see and understand music and the notes that make it up instantly. This is achieved mainly by coiling the spectrum into a spiral framed by a chromatic circle, thus allowing you to instantly see what's happening musically and spectrally. - $
** https://github.com/amsynth/amsynth
 
  
=== Sineshaper ===
+
==== spectro ====
* [http://www.nongnu.org/ll-plugins/lv2/sineshaper.html 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.
+
* https://github.com/nschloe/spectro - a collection of easy-to-use Python and command-line tools for analyzing audio files
  
=== Mx44 ===
+
==== scope-tui ====
* [http://web.comhem.se/luna/ 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.
+
* https://github.com/alemidev/scope-tui - A simple oscilloscope/vectorscope/spectroscope for your terminal
  
* http://www.linuxsynths.com/Mx44PatchesDemos/mx44.html
+
=== Waveform ===
 +
* [https://waveform.prototyping.bbc.co.uk/ Peaks.js] - a JavaScript component from BBC Research and Development that allows users to view and interact with audio waveforms in the browser.Peaks.js uses the HTML <canvas> element to display the waveform at different zoom levels, and synchronise the display to playback of an associated <audio> or <video> element. The component also allows point and segment markers to be added to the waveform, e.g., for distinguishing music from speech, or identifying different music tracks.
 +
** https://github.com/bbc/audiowaveform
  
=== Newtonator ===
 
* [http://newtonator.sourceforge.net/ 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.
 
  
* http://www.linuxsynths.com/NewtonatorPatchesDemos/newtonator.html
+
* https://github.com/andrewrk/waveform - simultaneously transcode and generate visuals for an audio file
  
=== Obxd ===
 
* [https://obxd.wordpress.com Obxd] - Emulation of famous OB-X, OB-Xa and OB-8 synths
 
  
 +
* https://github.com/ayyi/libwaveform - Libwaveform attempts to provide versatile easy-to-use interactive display of audio waveforms for Gtk+-2 and X11 applications. Suitable for anything from simple display, up to a full digital audio workstation.
  
* http://www.linuxsynths.com/ObxdPatchesDemos/obxd.html
 
  
=== synthv1 ===
+
* https://github.com/endolith/freesound-thumbnailer - A script to generate thumbnails for audio files, derived from the method used on Freesound.org (amplitude envelope with color representing spectral centroid)
* [http://sourceforge.net/projects/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 ===
+
=== Various ===
* [https://padthv1.sourceforge.io/ 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.
+
See [[Lighting#Visualisation]]
  
=== rt_lpc ===
 
* [http://soundlab.cs.princeton.edu/software/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 ===
+
* [http://xoscope.sourceforge.net/ xoscope for Linux] - a digital oscilloscope for Linux! ALSA, ESD, and COMEDI data sources; Sweep rates from 2 ns to 2 seconds per division; Eight simultaneous display channels; Scrollable memory buffers; Triggers; Cursors; Both analog and digital inputs; Sweep, accumulate, and strip chart display modes
* http://d00m.org/~someone/so404/
 
* http://d00m.org/~someone/sokl5/
 
* http://d00m.org/~someone/so666/
 
  
* https://github.com/jeremysalwen/So-synth-LV2 - unofficial lv2 ports
 
  
=== Oxe FM ===
 
* [http://www.oxesoft.com/ 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
 
  
* http://www.linuxsynths.com/OxePatchesDemos/oxefmsynth.html
+
* [http://www.jthorborg.com/index.html?ipage=signalizer Signalizer] - 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.
 +
** https://bitbucket.org/Mayae/signalizer/overview
  
=== Synister ===
 
* [http://the-synister.github.io/ Synister] is a substractive software synthesizer made by students of the TU Berlin. Downloads include a standalone version (PC/Mac) and VST2 Plugins (Windows 32/64bit) (OSX 64bit) for use in Digital Audio Workstations (DAWs). Synister has been tested on the following DAWs: Logic, Ableton Live, Cubase and Maschine and on Windows 7, 8, 10 and OSX El Captain. [https://github.com/the-synister/the-source/issues/5 linux]
 
** https://github.com/the-synister/the-source
 
** https://github.com/the-synister/the-source/issues/5 - Linux
 
  
=== Peggy 2000 ===
+
* [https://www.upf.edu/web/mtg/repovizz RepoVizz] - a data repository and visualization tool for structured storage and user-friendly browsing of music performance multi-modal recordings. The primary purpose of RepoVizz is to offer means for the scientific community to gain on-line access to a music performance multi-modal database shared among researchers.
* [http://www.linuxsynths.com/Peggy2000PatchesDemos/peggy2000.html Peggy 2000] - subtractive synth with step sequencer made with juce
+
** https://repovizz.upf.edu/repo/Home
 +
** https://github.com/repovizz
 +
** YouTube: [https://www.youtube.com/watch?v=c7pmDvkKY7A repovizz - ICT Vilnius Demo (SIEMPRE & PHENICX) long version]
  
* http://www.juce.com/forum/topic/peggy2000-total-peggination
 
  
=== Paraphrasis ===
+
* [http://soundlab.cs.princeton.edu/software/sndpeek/ 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
* 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 ===
 
* [http://www.linuxsynths.com/VexPatchesDemos/vex.html 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.
+
* https://bitbucket.org/asiniscalchi/visualjackm - connect projectM visualisation to Jack
  
=== Xsynth ===
 
* [http://dssi.sourceforge.net/download.html#Xsynth-DSSI 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.
 
  
* http://www.linuxsynths.com/XsynthBanksDemos/xsynth.html
+
* [http://www.vsxu.com/ 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.
 +
** https://github.com/vovoid/vsxu
  
=== RTSynth ===
 
* [http://linux-sound.org/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 ===
+
* [http://biniou.net/ 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.
* [http://freecode.com/projects/wsynth-dssi 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.
+
** https://dl.biniou.net/biniou/tar
 +
** https://github.com/oliv3/lebiniou4/wiki
  
* http://www.linuxsynths.com/WsynthBanksDemos/wsynth.html
 
  
=== slat ===
+
* https://github.com/party/tv - TV display for Party.
* [http://dis-dot-dat.net/index.cgi?item=code/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 ===
 
* http://mda.smartelectronix.com/synths.htm
 
** http://www.linuxsynths.com/DX-10PatchesDemos/DX-10.html
 
  
* http://www.linuxsynths.com/JX-10PatchesDemos/JX-10.html
+
* https://github.com/jcarrano/rtfi - Resonator Time-Frequency Image
  
=== VOPM ===
+
== Phase ==
* [http://www.geocities.jp/sam_kb/VOPM/ VOPM] - Virtual fm synthsizer,like OPM
 
  
* http://www.linuxsynths.com/VOPMPatchesDemos/vopm.html
+
=== Windows VST ===
  
Ported to linux by the Jucetice Team at Anticore.org
+
* [https://www.voxengo.com/press/voxengo-correlometer-free-multi-band-correlation-meter-plugin-released-339/ Voxengo Correlometer free multi-band correlation meter plugin released] - a free analog-style stereo multi-band correlation meter AudioUnit, AAX and VST plugin for professional music production applications.  It is based on correlation meter found in PHA-979 phase-alignment plugin.Multi-band correlation meter is an advanced way to check for presence of out-of-phase elements in the mix.  Broadband correlation metering reports overall phase issues and may misrepresent problems present in select spectral bands, while multi-band correlation meter easily highlights problems present in mid to high frequencies that are not easily heard by ear, but may still reduce clarity of the mix.  Another application of multi-band correlation metering is phase- and time-aligning of channels and tracks, especially bass and bass-drum pairs, guitar mic and D.I. source pairs, two-microphone stereo recordings, etc.Correlometer can display 4 to 64 individual spectral bands, with adjustable band quality factor that controls the degree of band’s selectivity.  Averaging time of correlation estimator can be adjusted.  Correlometer supports side-chain inputs for easy correlation estimation between separate audio tracks.
  
=== WatSyn ===
+
== Feature detection/extraction ==
* [http://www.linuxsynths.com/WatSynPatchesDemos/watsyn.html Wat Syn] is a 4-oscillator, modulatable wavetable synthesizer, another powerful instrument included in the Linux MultiMedia Studio (LMMS) Digital Audio Workstation
+
=== aubio ===
 +
* [http://aubio.org/ 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.
  
=== TAL Noisemaker ===
+
* [http://jeremysalwen.github.io/Aubio-LV2-Plugins/ 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.
* [https://tal-software.com/products/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.
+
=== Vamp ===
 +
* [http://www.vamp-plugins.org/ Vamp] - 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.
 +
* [https://www.vamp-plugins.org/download.html Find and Download Plugins] - listing
  
distrho linux port available
 
  
* http://www.linuxsynths.com/TALNoizeM4k3r-BanksDemos/talnoizem4k3r.html
+
* [http://isophonics.net/QMVampPlugins QM Vamp Plugins] - A set of plugins for feature extraction from audio data, using the Vamp plugin format suitable for use in programs such as Sonic Visualiser and Sonic Annotator.VAMP diagramThis plugin set includes note onset detector, beat and barline tracker, tempo estimator, key estimator, tonal change detector, structural segmenter, timbral and rhythmic similarity, wavelet scaleogram, adaptive spectrogram, note transcription, chromagram, constant-Q spectrogram, and MFCC plugins.
 +
** https://github.com/c4dm/qm-vamp-plugins
  
=== Xiph ===
 
* [http://xhip.net/synth 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. [https://linuxmusicians.com/viewtopic.php?f=24&t=17634]
 
  
=== Minicomputer ===
+
* [https://code.soundsoftware.ac.uk/projects/segmenter-vamp-plugin/ Segmentino] - a Vamp plugin for automatic music structural segmentation, based on an algorithm first used in Mauch et al.'s paper on Using Musical Structure to Enhance Automatic Chord Transcription.
* [http://minicomputer.sourceforge.net/ 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.
 
  
* https://github.com/jeremysalwen/Minicomputer-LV2
 
  
=== Tunefish ===
+
* [https://code.soundsoftware.ac.uk/projects/silvet Silvet Note Transcription] - or Shift-Invariant Latent Variable Transcription, is a Vamp plugin for polyphonic music transcription (from audio to note times and pitches).What can I use it for?In conjunction with a Vamp plugin host like Sonic Visualiser, you can use Silvet to help you work out what notes are being played in a piece of music, for example if you want to learn to play it yourself.You might also use it to study performances for musicological features such as timing and dynamics.Silvet also serves as a useful stable baseline for comparative purposes, for researchers working on other methods related to note transcription.Silvet uses a high-quality and quite flexible method, but it has various limitations which you can find described in the README file. Although you can easily get interesting and useful results for many kinds of music, don't expect it to take you straight from the audio to a complete and readable score!
* [http://www.tunefish-synth.com/ 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.)
+
** https://github.com/cannam/silvet
  
Universal VST.
 
  
=== Sprike ===
+
* [https://www.upf.edu/web/mtg/melodia Melodia] - automatically estimates the pitch of a song's main melody. More specifically, it implements an algorithm that automatically estimates the fundamental frequency corresponding to the pitch of the predominant melodic line of a piece of polyphonic (or homophonic or monophonic) music.Given a song, the algorithm estimates:    When the melody is present and when it is not (a.k.a. voicing detection)    The pitch of the melody when it is present
* https://github.com/cognitone/sprike - Tunefish fork
 
  
=== Mr. Alias 2 ===
 
* [http://www.thepiz.org/mralias2/ 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.
+
* [https://www.upf.edu/web/mtg/hpcp HPCP] - a vamp plug-in for audio feature extraction that computes the instantaneous evolution of HPCP (Harmonic Pitch Class Profile) of a signal. The HPCP is an approach for chroma feature estimation which represents the pitch content of polyphonic music signals, mapped to a single octave. HPCP have been extensively used for several final applications such as key and chord estimation, similarity computation (cover version identification) and music classification.
  
=== Digits ===
+
=== auditok ===
* https://ineardisplay.com/plugins/legacy/ - 1.3 for Linux
+
* https://github.com/amsehili/auditok - 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.
  
* https://soundcloud.com/extentofthejam/get-your-ass-to-mars-20120912
+
=== audioid ===
 +
* https://github.com/sai-soum/audioid - Audio Identification using Audio Fingerprinting technique.
  
=== Virtual ANS ===
+
=== Audioflux ===
* [http://www.warmplace.ru/soft/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.  
+
* [https://audioflux.top/ AudioFlux] - library for audio and music analysis, feature extraction. Can be used for deep learning, pattern recognition, signal processing, bioinformatics, statistics, finance, etc
 +
** https://github.com/libAudioFlux/audioFlux
  
=== reSID ===
+
=== Tempo ===
* http://www.zimmers.net/anonftp/pub/cbm/crossplatform/emulators/resid/index.html
+
BPM, or beats per minute
  
* [http://gp2x.org/remid/ reMID] - a MIDI interface to reSID
+
==== bonk ====
 +
* [http://obiwannabe.co.uk/html/music/bonker/bonker.html 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.
  
* https://github.com/FigBug/SID
+
==== MiniBPM ====
 +
* [http://www.breakfastquay.com/minibpm/ 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.
  
* 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.
+
==== libbeat ====
 +
* https://github.com/mguentner/libbeat - a lightweight beat detection library for Qt. It currently supports ALSA and PulseAudio. It uses fftw to process the samples.
  
=== Rave Generator VST ===
+
==== bpm-tools ====
* [http://blog.wavosaur.com/rave-generator-vst-free-90s-stab-synth/ Rave Generator VST] - a free rompler VST synth, containing many of the classic sounds of the early rave / hardcore from the 90′s.
+
* [http://www.pogo.org.uk/~mark/bpm-tools/ 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.
  
* http://blog.wavosaur.com/download/ravegen2beta/linuxbeta/ [https://linuxmusicians.com/viewtopic.php?f=48&t=15115]
+
==== BeatDetektor ====
 +
* [https://sourceforge.net/projects/beatdetektor/ 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.
  
=== Happychords ===
+
==== BTrack ====
* 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
+
* 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.
  
* YouTube: [https://www.youtube.com/watch?v=TduNSSxQhEs Happychords]
 
  
=== Qin ===
+
==== audio-dsp-midi-trigger ====
* [https://github.com/magnusjonsson/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.
+
* https://github.com/metachronica/audio-dsp-midi-trigger MIDI Trigger - LV2 plugin which detects peaks by audio signal and sends MIDI notes.
  
=== lv2_guitar ===
+
==== BeatCounter ====
* [http://lms.lnt.de/en/research/activity/systems/kusterer 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.
+
* [http://teragonaudio.com/BeatCounter.html 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.
 +
** https://github.com/teragonaudio/BeatCounter
  
=== CT-Synth ===
 
* [http://members.chello.nl/w.boeke/ct-gui/index.html 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 ===
+
==== Tapita ====
* [https://www.psychosynth.com/index.php?title=Main_Page 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.
+
* [https://sourceforge.net/projects/tapita/ Tapita] - (snack in spanish) is a BPM detector trough keyboard, MIDI and jack written in C with GTK2.
  
=== GuitarSynth ===
+
==== WaveBeat ====
* 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.
+
* https://github.com/csteinmetz1/wavebeat - End-to-end beat and downbeat tracking in the time domain.
  
=== bytes ===
+
=== Frequency ===
* https://github.com/grejppi/bytes - LV2 synth with four oscillators, 1-bit wavetables and hard sync
+
==== Tony ====
 +
* [http://isophonics.net/tony Tony] - a software program for high quality scientific pitch and note transcription in three steps: automatic visualisation/sonification, easy correction, and export. First, Tony automatically analyses the audio to visualise pitch tracks and notes from monophonic recordings . As a Tony user, you can play back pitches and notes alongside the recording, which makes it easy to spot the inevitable extraction errors. Then you can use several tools that make correction of such errors a breeze, including alternative pitch track selection, octave shift, and easy note split, merge and deletion. Finally, you can export pitch track and note track in .csv (comma-separated values) format, or simply save a session file to continue annotating another time.
 +
** https://code.soundsoftware.ac.uk/projects/tony
  
=== reasonablesynth.lv2 ===
+
==== libKeyFinder ====
* https://github.com/x42/reasonablesynth.lv2
+
* https://github.com/ibsh/libKeyFinder - Musical key detection for digital audio, GPL v3
  
=== fastbreeder ===
+
==== pitch-detection ====
* [http://www.pawfal.org/Software/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.
+
* https://github.com/sevagh/pitch-detection - collection of O(NlogN) pitch detection implementations
  
=== munt ===
+
==== Pitch-Tracking ====
* [https://github.com/munt/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.
+
* https://github.com/orchidas/Pitch-Tracking - Pitch detection algorithmsMethods implemented:    YIN ESTIMATOR - YIN, a fundamental frequency estimator for speech and music - Alain de Cheveigné, Hideki Kawahara - Journal of the Acoustical Society of America, 2002.    CEPSTRUM - Cepstrum Pitch Determination - A.M.Noll - Journal of the Acoustical Society of America, 1967.    MAXIMUM LIKELIHOOD - Maxmium Likelihood Pitch Estimation - James D.Wise, James R.Caprio, Thomas W.Parks - IEEE Transactions on Acoustics, Speech and Signal Processing, 1976.    EXTENDED KALMAN FILTER -        Real-time Pitch Tracking in Audio Signals with the Extended Complex Kalman Filter - Orchisama Das, Julius O. Smith, Chris Chafe in Proc. of International Conference on Digital Audio Effects, DAFx 2017.       Improved Real-time Monophonic Pitch Tracking with the Extended Complex Kalman Filter - Orchisama Das, Julius O. Smith, Chris Chafe - in Journal of the Audio Engineering Society, Vol 68, No. 1/2, 2020.
  
=== andes ===
+
==== swipe ====
* [https://artfwo.github.io/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.
+
* https://github.com/kylebgorman/swipe - A pitch tracker using Camacho's SWIPE' algorithm, written in C
** https://github.com/artfwo/andes
 
  
=== GuitarSynth-DPF ===
+
=== Silence ===
* [https://github.com/geraldmwangi/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
+
==== silan ====
 +
* https://github.com/x42/silan - audio file -silence- analyzer
  
=== Diodow ===
+
==== SilentJack ====
* [http://www.hrastprogrammer.com/hrastwerk/diodow.htm 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.
+
* [https://www.aelius.com/njh/silentjack/ SilentJack] is a silence/dead air detector for the Jack Audio Connection Kit.
 +
** https://github.com/njh/silentjack
 +
** https://github.com/7890/silentjack_osc - fork
  
=== Tranzistow ===
+
==== SilenceRemover ====
* [http://www.hrastprogrammer.com/hrastwerk/tranzistow.htm 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. - $
+
* https://github.com/sagamusix/SilenceRemover - removes silence from the beginning of a WAV or FLAC file. Getting the job done was more important than beautiful code. For example, using FILE* instead of std::ifstream was simply done so that the file feeds directly into libflac.
  
=== jackpunkconsole ===
+
=== Essentia / Essentia.js ===
* 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.
+
* [http://essentia.upf.edu/ 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/essentia
  
=== Xhip Follower ===
 
* [http://xhip.net/effects/?p=Follower Xhip Follower] - The Xhip synthesizer filter controlled by a HAR envelope follower.
 
  
=== Chiptune ===
+
* 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.
==== ftz Chiptune ====
 
* https://ftz.lyberta.net/projects/chiptune - provides synths for basic waveforms which were produced by programmable sound generators in the 1980s and 1990s. The project is in alpha state and there is no GUI. You need to use your DAW to automate parameters.
 
** https://gitlab.com/ftz/chiptune
 
  
  
==== synthem80 ====
 
* https://github.com/wildsparx/synthem80 [https://news.ycombinator.com/item?id=14627243]
 
  
==== SocaLabs 8-bit synths ====
+
* [https://mtg.github.io/essentia.js/docs/api/ Essentia.js] - JavaScript library for Music/Audio analysis, powered by Essentia WebAssembly backend.
* http://socalabs.com/
+
** https://github.com/mtg/essentia.js - a JavaScript (JS) library for music/audio signal analysis and processing developed at the Music Technology Group, UPF, Barcelona. The core of library is powered by Essentia C++ library back-end using WebAssembly built via Emscripten along with a high-level JS and TypeScript API and add-on utility modules. ie, You can run an extensive collection of music/audio processing and analysis algorithms/models on your web browser or Node.js runtime applications. It supports both real-time and offline audio analysis use-cases.
  
* https://www.tracktion.com/products/8bit-treats
+
* [https://transactions.ismir.net/articles/10.5334/tismir.111 Audio and Music Analysis on the Web using Essentia.js - Transactions of the International Society for Music Information Retrieval]
  
 +
* [https://github.com/MTG/essentia.js-tutorial-wac2021 MTG/essentia.js-tutorial-wac2021: Essentia.js tutorial at Web Audio Conference 2021] - Web Audio is an intrinsic part of the next generation of applications for multimedia content creators, designers, researchers, music tutors, artists, and consumers. New advances in web audio and software for audio analysis, music information retrieval (MIR), and machine learning open up exciting possibilities. We have recently released Essentia.js, based on one of the most popular MIR libraries on the native platform. We have also created various pre-trained deep learning models for inference with TensorFlow.js. In this tutorial, we introduce the key concepts in MIR and cover the basics of using the library for music and audio analysis. We will show example use-cases and assist the participants in building their MIR Web applications.
  
==== vst2413 ====
 
* https://github.com/ssj71/vst2413 - FM synthesizer based on YM2413 (OPLL) sound chip emulator
 
  
=== Organ ===
+
=== Meyda.js ===
==== Aeolus ====
+
* [https://meyda.js.org/ Meyda] - a JavaScript audio feature extraction library. It works with the Web Audio API (or plain old JavaScript arrays) to expose information about the timbre and perceived qualities of sound. Meyda supports both offline feature extraction as well as real-time feature extraction using the Web Audio API. We wrote a paper about it, which is available here.
* [http://kokkinizita.linuxaudio.org/linuxaudio/aeolus/index.html 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.
+
** https://github.com/meyda/meyda
  
==== GENPO ====
+
* [https://glitch.com/~meyda-tutorial?utm_source=button&utm_medium=button&utm_campaign=glitchButton&utm_content=meyda-tutorial Meyda Tutorial] - A tutorial for using Meyda, the Javascript Audio Feature Extraction Library, in Web Audio
* [http://genpo.sourceforge.net/ 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 ====
 
* [http://jorgan-home.de/mediawiki_en/index.php?title=Home 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.
 
** http://sourceforge.net/projects/jorgan
 
  
==== Beatrix ====
+
=== openSMILE ===
* [http://people.dsv.su.se/~fk/beatrix_home.html 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.
+
* [https://audeering.com/technology/opensmile openSMILE] - feature extration tool enables you to extract large audio feature spaces in realtime. It combines features from Music Information Retrieval and Speech Processing. SMILE is an acronym forSpeech & Music Interpretation by Large-space Extraction. It is written in C++ and is available as both a standalone commandline executable as well as a dynamic library. The main features of openSMILE are its capability of on-line incremental processing and its modularity. Feature extractor components can be freely interconnected to create new and custom features, all via a simple configuration file. New components can be added to openSMILE via an easy binary plugin interface and a comprehensive API.
  
==== setBfree ====
+
* https://github.com/naxingyu/opensmile
* [http://setbfree.org/ 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.
 
** https://github.com/pantherb/setBfree
 
  
==== GrandOrgue ====
+
=== Madmom ===
* [http://sourceforge.net/projects/ourorgan/ 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.
+
* 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
  
==== Foo YC20 ====
+
=== jMIR ===
* [http://foo-yc20.codeforcode.com/ 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.
+
* [http://jmir.sourceforge.net jMIR] - an open-source software suite implemented in Java for use in music information retrieval (MIR) research. It can be used to study music in the form of audio recordings, symbolic encodings and lyrical transcriptions, and can also mine cultural information from the Internet. It also includes tools for managing and profiling large music collections and for checking audio for production errors. jMIR includes software for extracting features, applying machine learning algorithms, applying heuristic error error checkers, mining metadata and analyzing metadata.
** https://github.com/sampov2/foo-yc20
+
** https://sourceforge.net/projects/jmir/
  
==== Horgand ====
+
=== KeyFinder ===
* [https://web.archive.org/web/20110818010436/http://horgand.berlios.de 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).
+
* [http://www.ibrahimshaath.co.uk/keyfinder/ KeyFinder] - an open source key detection tool, for DJs interested in harmonic and tonal mixing. It's intended to be very focused: no library management, no track suggestions, no media player. Just a fast, efficient workflow tool. It supports a huge range of codecs thanks to LibAV, and writes to metadata tags using TagLib.
** https://github.com/ycollet/horgand
+
** https://github.com/ibsh/is_KeyFinder
 +
** https://github.com/ibsh/libKeyFinder
  
==== Organteq ====
+
=== polyscribe ===
* [https://www.modartt.com/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).
+
* https://github.com/joelrobichaud/polyscribe - Convert polyphonic multi-track audio to sheet music.
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 ====
+
=== kbd-audio ===
* [http://ll-plugins.nongnu.org/azr3/ 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.
+
* https://github.com/ggerganov/kbd-audio - collection of command-line and GUI tools for capturing and analyzing audio data.
  
==== Connie ====
+
=== Sufrboard ===
* 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.
+
* [https://arxiv.org/abs/2005.08848 Surfboard: Audio Feature Extraction for Modern Machine Learning] - We introduce Surfboard, an open-source Python library for extracting audio features with application to the medical domain. Surfboard is written with the aim of addressing pain points of existing libraries and facilitating joint use with modern machine learning frameworks. The package can be accessed both programmatically in Python and via its command line interface, allowing it to be easily integrated within machine learning workflows. It builds on state-of-the-art audio analysis packages and offers multiprocessing support for processing large workloads. We review similar frameworks and describe Surfboard's architecture, including the clinical motivation for its features. Using the mPower dataset, we illustrate Surfboard's application to a Parkinson's disease classification task, highlighting common pitfalls in existing research. The source code is opened up to the research community to facilitate future audio research in the clinical domain. [https://news.ycombinator.com/item?id=23314993]
 +
** https://github.com/novoic/surfboard
  
==== EplayOrgan ====  
+
=== DrumClassifier CNN-LSTM ===
* [https://midimusic.github.io/tech/eplayOrgan.html 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.
+
* https://github.com/faraway1nspace/DrumClassifer-CNN-LSTM - Classifies percussion audio samples with a CNN-LSTM, written in python and pytorch. Also exports to Drumkv1 (lv2 plugin)
  
=== Windows VST ===
+
=== FMA ===
* [http://marvinpavilion.ojaru.jp/en/sound/vst.html MARVIN VST] - freeware Windows
+
* https://github.com/mdeff/fma - We introduce the Free Music Archive (FMA), an open and easily accessible dataset suitable for evaluating several tasks in MIR, a field concerned with browsing, searching, and organizing large music collections. The community's growing interest in feature and end-to-end learning is however restrained by the limited availability of large audio datasets. The FMA aims to overcome this hurdle by providing 917 GiB and 343 days of Creative Commons-licensed audio from 106,574 tracks from 16,341 artists and 14,854 albums, arranged in a hierarchical taxonomy of 161 genres. It provides full-length and high-quality audio, pre-computed features, together with track- and user-level metadata, tags, and free-form text such as biographies. We here describe the dataset and how it was created, propose a train/validation/test split and three subsets, discuss some suitable MIR tasks, and evaluate some baselines for genre recognition. Code, data, and usage examples are available at mdeff/fma.
  
* [http://www.vstmuseum.com/ VST Museum] - freeware Windows
+
=== Wavebeat ===
 +
* https://github.com/csteinmetz1/wavebeat - End-to-end beat and downbeat tracking in the time domain.
  
==== SQ8L ====
+
=== Buzz ===
* [http://www.buchty.net/ensoniq/index.html#sq8l SQ8L] - an SQ80-emulating VSTi. Runs on Linux via Wine, but not on Windows????????
+
* https://github.com/chidiwilliams/buzz - Buzz transcribes and translates audio offline on your personal computer. Powered by OpenAI's Whisper.
  
 +
=== AudioCLIP ===
 +
* https://github.com/AndreyGuzhov/AudioCLIP - Source code for models described in the paper "AudioCLIP: Extending CLIP to Image, Text and Audio" (https://arxiv.org/abs/2106.13043)
  
==== Synth1 ====
+
== Editing ==
* 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)
+
=== Audacity ===
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
+
* [http://audacity.sourceforge.net/ 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.
 +
** https://github.com/audacity/audacity
 +
** http://en.wikipedia.org/wiki/Audacity_(audio_editor)
  
==== Bleep ====
 
* [http://tonebytes.com/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 ====
+
* https://manual.audacityteam.org/man/track_control_panel_and_vertical_scale.html
* [http://www.u-he.com/cms/zebralette 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.
 
  
* [http://www.u-he.com/cms/podolski 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.
+
* https://manual.audacityteam.org/man/splitting_a_recording_into_separate_tracks.html
  
* [http://www.u-he.com/cms/tyrelln6 TyrellN6] - based on a design similar to Roland's classic Juno 60, with a few modules and novel features. Linux/Windows/Mac
 
** https://www.amazona.de/freeware-synth-tyrell-n6-v3-03 - downloads
 
  
==== u-he Hive ====
+
* https://www.theregister.com/2021/07/05/audacity
* [https://www.u-he.com/cms/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.
+
* https://yro.slashdot.org/story/21/07/05/2155212/open-source-audio-editor-audacity-has-become-spyware
  
==== u-he Triple Cheese ====
 
* [https://www.u-he.com/cms/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 ====
+
* https://github.com/hugofloresgarcia/torchaudacity - This package contains utilities for prepping PyTorch audio models for use in Audacity. More specifically, it provides abstract classes for you to wrap your waveform-to-waveform and waveform-to-labels models (see the Deep Learning for Audacity website to learn more about deep learning models for audacity).
* [http://www.fullbucket.de/music/deputy.html deputy Mark II] is a VST2.4 software instrument for Microsoft Windows
 
  
==== Charlatan ====
+
=== Tenacity ===
* [http://www.blaukraut.info/ 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.
+
* https://github.com/tenacityteam/tenacity
  
==== Venom VB-303 ====
+
=== AudioMass ===
* [http://antonsavov.net/cms/projects/venom-vb-303.html 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.
+
* [https://audiomass.co/ AudioMass] - a free, open source, web-based Audio and Waveform Editor.It runs entirely in the browser with no backend and no plugins required!
 +
** https://github.com/pkalogiros/AudioMass
  
Windows VST.
 
  
==== Caustic 3 ====
+
=== mhWaveEdit ===
* [http://www.singlecellsoftware.com/caustic 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.
+
* [https://gna.org/projects/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.
  
==== metamorph ====
+
=== Sweep ===
* [https://delamanchavst.wordpress.com/2013/10/21/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
+
* [http://www.metadecks.org/software/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.
  
==== GalaXynth ====
+
=== ReZound ===
* [https://heartofnoise.com/products/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.  
+
* [http://rezound.sourceforge.net/ ReZound] aims to be a stable, open source, and graphical audio file editor primarily for but not limited to the Linux operating system.
 +
** https://github.com/ddurham2/rezound
  
==== Scylla ====
+
=== ocenaudio ===
* [https://delamanchavst.wordpress.com/2014/06/25/scylla-the-six-headed-monster-vst-synth-is-released-for-free/ 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.
+
* [http://www.ocenaudio.com.br/ 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.
  
==== Oatmeal ====
+
=== Eisenkraut ===
* [http://www.vstplanet.com/News/2012/oatmeal_v38-1.htm Oatmeal] - a two-oscillator subtractive synth.
+
* [https://www.sciss.de/eisenkraut/ Eisenkraut] - A multi-channel and hi-res capable audio file editor.
 +
** https://github.com/Sciss/Eisenkraut
  
==== X11 ====
+
=== WaveSurfer ===
* http://users.tpg.com.au/billv/X11.htm
+
* [http://sourceforge.net/projects/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.
 +
** https://en.wikipedia.org/wiki/WaveSurfer
  
* YouTube: [https://www.youtube.com/watch?v=TZI4ZuNCz-8 X11 by BV Music]
+
=== Jokosher ===
 +
* https://launchpad.net/jokosher
 +
** https://en.wikipedia.org/wiki/Jokosher
  
==== Harmony Box ====
+
=== soniK ===
* [http://davenoise.com/blog/?p=25#comments Harmony Box] - synth, win/mac vst/au
+
* [http://sonik.sourceforge.net/ 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.
  
==== basic65 ====
+
=== EKO ===
* [https://delamanchavst.wordpress.com/2013/12/12/basic65-retro-chiptune-synth-is-released-for-free/ 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.
+
* [http://semiletov.org/eko EKO] - a simple sound editor.
 +
** https://github.com/psemiletov/eko
  
==== Preparation P ====
+
=== wavbreaker ===
* [http://gersic.com/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.
+
* [http://wavbreaker.sourceforge.net/ 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.
  
==== SmallQoo ====
+
=== AudioAlign ===
* [http://www.g200kg.com/jp/software/smallqoo.html SmallQoo] - 8voice poly Compact Synth. Win VST.
+
* https://github.com/protyposis/AudioAlign - a tool written for research purposes to automatically synchronize audio and video recordings that have either been recorded in parallel at the same event or contain the same aural information. AudioAlign is basically a GUI for the Aurio library with a little bit of glue code in between.
  
==== Metatron ====  
+
=== LAoE ===
* [http://www.psychicmodulation.com/plugins.html 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.
+
* [http://www.oli4.ch/laoe/home.html 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!
  
==== Photon ====
+
=== Snd ===
* [http://www.psychicmodulation.com/plugins.html 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.
+
* [https://ccrma.stanford.edu/software/snd/snd/snd.html 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.
  
==== Subconscious ====
+
* https://github.com/kmatheussen/snd-from-sf
* [http://www.psychicmodulation.com/plugins.html 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.
+
* https://github.com/kmatheussen/snd-rt - old
  
==== ProtoPSG psg-005 ====
 
* http://www.g200kg.com/jp/software/protopsg.html
 
  
==== NoteGraphica ====
+
* [http://users.notam02.no/~kjetism/sandysth/ San Dysth] - 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).
* [http://www.g200kg.com/jp/software/notegraphica.html NoteGraphica]
 
  
==== blooo ====
+
=== GNUsound ===
* [https://www.fullbucket.de/music/blooo.html 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.
+
* [http://www.gnu.org/software/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.
  
Tempo sync.
+
=== Marlin ===
 +
* [http://marlin.sourceforge.net/ Marlin] - A GNOME Sample Editor. last updated 03-08-2004
  
==== scrooo ====
+
=== Gnoise ===
* [https://www.fullbucket.de/music/scrooo.html 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.
+
* [http://gnoise.sourceforge.net/ 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
  
Tempo sync.
+
=== WaveShop ===
 +
* [https://victimofleisure.github.io/WaveShop/ WaveShop] - a free, open-source audio editor for Windows XP/Vista/7/8 32-bit and 64-bit. WaveShop is fast, lightweight, and bit-perfect, meaning samples aren't altered unless they need to be. Editing a portion of an audio file only affects that portion; the rest of the file is untouched. Blocks of audio can be cut and pasted without changing their contents at all. This is especially useful for patching a finished master without corrupting its dither. Waveshop's features include peak, RMS and spectral analysis, normalizing, fading, sample rate conversion, audio generation, plug-ins, and more, all with unlimited undo and comprehensive help.
 +
** https://github.com/victimofleisure/WaveShop
  
* YouTube: [https://www.youtube.com/watch?v=1OHKGMg5Az8 The Scrooo]
+
== Source separation ==
 +
* [https://source-separation.github.io/tutorial/landing.html Open Source Tools & Data for Music Source Separation] - [https://news.ycombinator.com/item?id=24748793]
  
==== qyooo ====
+
=== ISSE ===
* [https://www.fullbucket.de/music/qyooo.html 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.
+
* [http://isse.sourceforge.net/ ISSE] - An Interactive Source Separation Editor
 +
** https://github.com/linuxmao-org/ISSE
 +
** https://github.com/linuxmao-org/ISSE-extras
 +
** YouTube: [https://www.youtube.com/watch?v=Rd3prIkO5bg ISSE: An Interactive Source Separation Editor (Thesis Demo)]
  
==== Ragnarök ====
 
* [https://www.fullbucket.de/music/ragnarok.html 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 ====
+
=== Spleeter ===
* [https://www.fullbucket.de/music/nabla.html 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.
+
* [https://deezer.io/releasing-spleeter-deezer-r-d-source-separation-engine-2b88985e797e Releasing Spleeter: Deezer Research source separation engine | by Manuel Moussallam | Deezer I/O]
 +
** https://github.com/deezer/spleeter - Deezer source separation library including pretrained models. [https://news.ycombinator.com/item?id=21431071]
  
==== Deputy ====
 
* [https://www.fullbucket.de/music/deputy.html 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 ====
+
* https://github.com/gvne/spleeterpp - A C++ Inference library for the Spleeter project [https://github.com/deezer/spleeter/issues/276]
* [https://www.fullbucket.de/music/kern.html 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 ====
 
* [https://www.fullbucket.de/music/monofury.html 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 ====
+
* https://github.com/james34602/SpleeterRT - Real time monaural source separation base on fully convolutional neural network operates on time-frequency domainAI Source separator written in C running a U-Net model trained by Deezer, separate your audio input to Drum, Bass, Accompaniment and Vocal/Speech with Spleeter model.
* [http://www.ftec-audio.com/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 ====
 
* [http://tactilesounds.blogspot.co.uk/p/ts-substance.html 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 ====
+
* https://github.com/gvne/vstSpleeter
* [http://www.technowitch.nl/vst-pitchshop.html 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 ====
+
* https://github.com/diracdeltas/vstSpleeter
* [http://www.technowitch.nl/vst-whitewidow.html 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 ====
+
=== Deep-Audio-Prior ===
* 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.
+
* https://github.com/adobe/Deep-Audio-Prior - Audio Source Separation Without Any Training Data.
  
==== Eclipsis ====
+
=== sudo_rm_rf ===
* [http://www.vstzone.sk/index.php#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!
+
* https://github.com/etzinis/sudo_rm_rf - Code for SuDoRm-Rf networks for efficient audio source separation. SuDoRm-Rf stands for SUccessive DOwnsampling and Resampling of Multi-Resolution Features which enables a more efficient way of separating sources from mixtures.
  
==== U.F.O. ZE ====
+
=== python_source_separation ===
* [http://www.vstzone.sk/index.php#ufoze 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.
+
* https://github.com/masahitotogami/python_source_separation - 本リポジトリでは、インプレス社機械学習実践シリーズの「Pythonで学ぶ音源分離」のサンプルコードを管理しています。 なお、本ソースコードは、MITライセンスのもとで公開されています。LICENSE.txtを見てください。
  
==== Charlatan ====
+
=== ssspy ===
* [http://www.blaukraut.info/ 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.
+
* https://github.com/tky823/ssspy - A Python toolkit for sound source separation.
  
==== The Viking ====
+
=== Adaptive and Focus Layer ===
* [https://www.dynamictonality.com/viking.htm 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.
+
* https://github.com/Totoketchup/Adaptive-MultiSpeaker-Separation - Adaptive and Focusing Neural Layers for Multi-Speaker Separation Problem
  
==== 2032 ====
+
=== MS5000 ===
* [https://www.dynamictonality.com/2032.htm 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).
+
* https://github.com/felixCheungcheung/mixing_secrets_v2 - Hierarchical Music Source Separation Using Mixing Secret Multi-track Dataset. an accompanying repository of my my master thesis and a submission to Late Breaking Demo of International Society of Music Information Retrieval 2022: MS500: A MULTI-TRACK DATASET FOR HIERARCHICAL MUSIC SOURCE SEPARATION
  
==== Transformer ====
+
=== Deep Learning For Monaural Source Separation ===
* [https://www.dynamictonality.com/transformer.htm 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.
+
* [https://sites.google.com/site/deeplearningsourceseparation/?pli=1 Deep Learning for Monaural Source Separation] - Monaural source separation is important for many real world applications. It is challenging in that, given only single channel information is available, there is an infinite number of solutions without proper constraints. In this paper, we explore joint optimization of masking functions and deep recurrent neural networks for monaural source separation tasks, including the monaural speech separation task, monaural singing voice separation task, and speech denoising task. The joint optimization of the deep recurrent neural networks with an extra masking layer enforces a reconstruction constraint. Moreover, we explore a discriminative training criterion for the neural networks to further enhance the separation performance. We evaluate our proposed system on TSP, MIR-1K, and TIMIT dataset for speech separation, singing voice separation, and speech denoising tasks, respectively.  
 +
** https://github.com/posenhuang/deeplearningsourceseparation - Deep Recurrent Neural Networks for Source Separation
  
==== ODOsynths archive ====
+
=== separateLeadStereo ===
* [https://theodosynthsarchive.wordpress.com/ Odo's Classic VST instruments] - Windows VST
+
* https://github.com/wslihgt/separateLeadStereo - Separate the lead from the accompaniment, in polyphonic audio music excerpts, in Python/Numpy
  
==== Dream 64 ====
+
=== Asteroid ===
* [http://www.vst4free.com/free_vst.php?plugin=Dream_64&id=1757 Dream 64] - inspired by the SID chip from the old but good Commodore c64, of course with some extra features added for fun.
+
* [https://asteroid-team.github.io/ Asteroid] - a Pytorch-based audio source separation toolkit that enables fast experimentation on common datasets. It comes with a source code that supports a large range of datasets and architectures, and a set of recipes to reproduce some important papers.
** [https://www.youtube.com/watch?v=Tjb4brMzE2g Dream64 V2 by Odo Synths]
+
** https://github.com/asteroid-team/asteroid
  
==== Harsh Digital Nose ====
 
* [http://www.thepiz.org/plugins/?p=Harsh%20Digital%20Nose 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.
+
* https://github.com/saurjya/asteroid - The PyTorch-based audio source separation toolkit for researchers || Pretrained models available
  
==== Chip32 ====
+
=== SigSep / Music Source Separation===
* http://www.geocities.jp/sam_kb/Chip32/
+
* [https://sigsep.github.io/open-unmix SigSep] - a deep neural network reference implementation for music source separation, applicable for researchers, audio engineers and artists. Open-Unmix provides ready-to-use models that allow users to separate pop music into four stems: vocals, drums, bass and the remaining other instruments.
 +
** https://github.com/sigsep/open-unmix-pytorch - This repository contains the PyTorch (1.8+, implementation of Open-Unmix, a deep neural network reference implementation for music source separation, applicable for researchers, audio engineers and artists. Open-Unmix provides ready-to-use models that allow users to separate pop music into four stems: vocals, drums, bass and the remaining other instruments. The models were pre-trained on the freely available MUSDB18 dataset. See details at apply pre-trained model.
  
==== MetaSynth ====
+
=== Music Separation Enhancement With Generative Modeling ===
* http://www.uisoftware.com/MetaSynth - mac, $
+
* https://github.com/interactiveaudiolab/MSG - the official implementation of the Make it Sound Good (MSG) model from our 2022 ISMIR paper "Music Separation Enhancement with Generative Modeling". We introduce Make it Sound Good (MSG), a post-processor that enhances the output quality of source separation systems like Demucs, Wavenet, Spleeter, and OpenUnmix
  
=== WebSynths ===
+
=== Vocal separation ===
See also [[WebDev#Web Audio API]]
+
==== Voiceolation ====
 +
* [https://voiceolation.github.io/ Voiceolation] - a music source separator that extracts vocals from songs. It is coded on Python and uses image segmentation methods via artificial intelligence, used a U-Net model implemented by Keras and Tensorflow.
  
* http://www.websynths.com/
+
==== vocal-remover ====
 +
* https://github.com/tsurumeso/vocal-remover - a deep-learning-based tool to extract instrumental track from your songs.
  
=== Android ===
+
==== vocal-music-separation ====
==== One Hand Synth ====
+
* https://github.com/zingmars/vocal-music-separation - Software that performs the separation of vocals from music using neural networks (part of my Bachelor's thesis). This CNN attempts to separate the vocals from the music. It does so by training on the amplitude data of the audio file and tries to estimate where the voiced parts are. Vocal separation is done by generating a binary mask of the time-frequency bins that the network thinks contain the vocals and applying it to the original file.
* [http://members.chello.nl/w.boeke/oh_synth/index.html 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 ====
+
==== blind-audio-source-separation-cnn ====
* [http://www.synprez.com/SynprezFM/ SynprezFM] - a full-fledged Yamaha DX7 emulator for Android
+
* https://github.com/ivasique/blind-audio-source-separation-cnn - A convolutional neural network for blind audio source separation.
  
=== DOS ===
+
==== SnnAsp ====
* https://github.com/onesuper/geekmusic - electronic organ game in DOS
+
* https://github.com/NeuroSumbaD/SnnAsp - This project explores applications of spiking neural networks for blind source audio separation. Using ARTRS, an eight-channel, multiple-talker dataset has been synthesized to simulate input from an eight-microphone linear array.
  
=== Various ===
 
* [https://docs.google.com/spreadsheets/d/1TebLK8BTRbqEWz79UfTOg2S03ZVAPKwgYFo_XK9UWH0/pub?single=true&gid=0&output=html r/edmproduction's List o' Free VSTs]
 
  
* https://www.reddit.com/r/softsynths/wiki/freeplugins
+
==== voicefilter ====
 +
* https://github.com/mindslab-ai/voicefilter - Unofficial PyTorch implementation of Google AI's VoiceFilter system
  
* http://www.failedmuso.com/blog/?s=free+download
 
  
 +
* [https://paperswithcode.com/paper/voicefilter-targeted-voice-separation-by VoiceFilter: Targeted Voice Separation by Speaker-Conditioned Spectrogram Masking | Papers With Code] -  In this paper, we present a novel system that separates the voice of a target speaker from multi-speaker signals, by making use of a reference signal from the target speaker. We achieve this by training two separate neural networks: (1) A speaker recognition network that produces speaker-discriminative embeddings; (2) A spectrogram masking network that takes both noisy spectrogram and speaker embedding as input, and produces a mask. Our system significantly reduces the speech recognition WER on multi-speaker signals, with minimal WER degradation on single-speaker signals.
  
* http://www.easytoolz.de/products.html
 
  
=== Modelled instruments ===
+
* [https://arxiv.org/abs/2009.04323 2009.04323 VoiceFilter-Lite: Streaming Targeted Voice Separation for On-Device Speech Recognition] - We introduce VoiceFilter-Lite, a single-channel source separation model that runs on the device to preserve only the speech signals from a target user, as part of a streaming speech recognition system. Delivering such a model presents numerous challenges: It should improve the performance when the input signal consists of overlapped speech, and must not hurt the speech recognition performance under all other acoustic conditions. Besides, this model must be tiny, fast, and perform inference in a streaming fashion, in order to have minimal impact on CPU, memory, battery and latency. We propose novel techniques to meet these multi-faceted requirements, including using a new asymmetric loss, and adopting adaptive runtime suppression strength. We also show that such a model can be quantized as a 8-bit integer model and run in realtime.
  
* http://www.yohng.com/software/truepianos.html
+
* [https://arxiv.org/abs/1810.04826 1810.04826 VoiceFilter: Targeted Voice Separation by Speaker-Conditioned Spectrogram Masking] -  In this paper, we present a novel system that separates the voice of a target speaker from multi-speaker signals, by making use of a reference signal from the target speaker. We achieve this by training two separate neural networks: (1) A speaker recognition network that produces speaker-discriminative embeddings; (2) A spectrogram masking network that takes both noisy spectrogram and speaker embedding as input, and produces a mask. Our system significantly reduces the speech recognition WER on multi-speaker signals, with minimal WER degradation on single-speaker signals.  
  
 +
* https://github.com/tky823/DNN-based_source_separation - A PyTorch implementation of DNN-based source separation.
  
* 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.
+
==== DNN-based source separation ====
 +
* https://github.com/haoheliu/torchsubband - Pytorch implementation of subband decomposition
  
 +
==== XSpeech ====
 +
* https://github.com/tky823/XSpeech - A PyTorch implementation of target speaker extraction.
  
* [http://www.vst4free.com/free_vst.php?id=1065 Spicy Guitar] - a free physically modelled acoustic guitar synthesizer.
+
==== Vocal and music seperation using a CNN ====
 +
* https://github.com/zingmars/vocal-music-separation - Software that performs the separation of vocals from music using neural networks (part of my Bachelor's thesis).  
  
=== Neural net ===
+
==== TasNet / Conv-TasNet ====
 +
* https://github.com/kaituoxu/TasNet - A PyTorch implementation of "TasNet: Time-domain Audio Separation Network for Real-time, single-channel speech separation", published in ICASSP2018, by Yi Luo and Nima Mesgarani.
  
* https://magenta.tensorflow.org/nsynth-instrument [https://news.ycombinator.com/item?id=14627243]
+
* https://github.com/kaituoxu/Conv-TasNet - A PyTorch implementation of Conv-TasNet described in "TasNet: Surpassing Ideal Time-Frequency Masking for Speech Separation".
  
* https://magenta.tensorflow.org/nsynth-fastgen
+
=== LSTM/BLSTM based PIT for Two Speakers ===
 +
* https://github.com/aishoot/LSTM_PIT_Speech_Separation - Two-talker Speech Separation with LSTM/BLSTM by Permutation Invariant Training method.
  
== Sounds and samples ==
+
=== Ultimate Vocal Remover GUI ===
* 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.
+
* https://github.com/Anjok07/ultimatevocalremovergui - uses state-of-the-art source separation models to remove vocals from audio files. UVR's core developers trained all of the models provided in this package (except for the Demucs v3 and v4 4-stem models). These bundles contain the UVR interface, Python, PyTorch, and other dependencies needed to run the application effectively. No prerequisites are required.
  
 +
==== free-music-demixer ====
 +
* [https://sevag.xyz/free-music-demixer/ free-music-demixer] - Open-Unmix (UMX-L) running client-side in the browser with WebAssembly for music demixing (aka music source separation)
 +
** https://github.com/sevagh/free-music-demixer
  
=== Creating ===
+
=== Video separation ===
* [http://www.epicsound.com/sfx/ 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!
+
==== Move2Hear ====
 +
* [https://vision.cs.utexas.edu/projects/move2hear/ Move2Hear] Active Audio-Visual Source Separation.  We introduce the active audio-visual source separation problem, where an agent must move intelligently in order to better isolate the sounds coming from an object of interest in its environment. The agent hears multiple audio sources simultaneously (e.g., a person speaking down the hall in a noisy household) and it must use its eyes and ears to automatically separate out the sounds originating from a target object within a limited time budget. Towards this goal, we introduce a reinforcement learning approach that trains movement policies controlling the agent's camera and microphone placement over time, guided by the improvement in predicted audio separation quality. We demonstrate our approach in scenarios motivated by both augmented reality (system is already co-located with the target object) and mobile robotics (agent begins arbitrarily far from the target object). Using state-of-the-art realistic audio-visual simulations in 3D environments, we demonstrate our model's ability to find minimal movement sequences with maximal payoff for audio source separation.
 +
** https://github.com/SAGNIKMJR/move2hear-active-AV-separation - Active Audio-Visual Source SeparationThis repository contains the PyTorch implementation of our ICCV-21 paper and the associated datasets:Move2Hear: Active Audio-Visual Source SeparationSagnik Majumder, Ziad Al-Halah, Kristen GraumanThe University of Texas at Austin, Facebook AI Research
  
* [http://www.filmsound.org/ FilmSound.org] - Learning Space dedicated to the Art and Analyses of Film Sound Design
+
==== VoiceMe ====
 +
* https://github.com/polvanrijn/VoiceMe - Novel text-to-speech systems can generate entirely new voices that were not seen during training. However, it remains a difficult task to efficiently create personalized voices from a high dimensional speaker space. In this work, we use speaker embeddings from a state-of-the-art speaker verification model (SpeakerNet) trained on thousands of speakers to condition a TTS model. We employ a human sampling paradigm to explore this speaker latent space. We show that users can create voices that fit well to photos of faces, art portraits, and cartoons. We recruit online participants to collectively manipulate the voice of a speaking face. We show that (1) a separate group of human raters confirms that the created voices match the faces, (2) speaker gender apparent from the face is well-recovered in the voice, and (3) people are consistently moving towards the real voice prototype for the given face. Our results demonstrate that this technology can be applied in a wide number of applications including character voice development in audiobooks and games, personalized speech assistants, and individual voices for people with speech impairment.
  
 +
== Diarisation ==
 +
* https://en.wikipedia.org/wiki/Speaker_diarisation - the process of partitioning an input audio stream into homogeneous segments according to the speaker identity. It can enhance the readability of an automatic speech transcription by structuring the audio stream into speaker turns and, when used together with speaker recognition systems, by providing the speaker’s true identity. It is used to answer the question "who spoke when?" Speaker diarisation is a combination of speaker segmentation and speaker clustering. The first aims at finding speaker change points in an audio stream. The second aims at grouping together speech segments on the basis of speaker characteristics.
  
* https://github.com/mozilla/voice-corpus-tool - Tool for creation, manipulation and maintenance of voice corpora
 
  
 +
* https://github.com/wq2012/awesome-diarization -  A curated list of awesome Speaker Diarization papers, libraries, datasets, and other resources.
  
=== Info ===
 
* [http://www.whosampled.com/ 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.
 
  
 +
* https://github.com/hitachi-speech/EEND - End-to-End Neural Diarization is a neural-network-based speaker diarization method.
  
=== Downloads ===
+
== Processing tools ==
* http://wiki.linuxaudio.org/wiki/free_audio_data
+
See also [[Effects]]
  
 +
*https://github.com/yamathcy/Awesome-MusicInfomatics
  
* https://www.reddit.com/r/freesounds
 
  
* https://www.reddit.com/r/freeloops
+
* http://www.smartelectronix.com/~jaha
  
* https://www.reddit.com/r/Samplehunters
+
=== SoX ===
 +
* [http://sox.sourceforge.net/ 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.
 +
** http://en.wikipedia.org/wiki/SoX
  
 +
play --show-progress -c 2 --null synth brownnoise reverb bass 6 treble -3 echos 0.8 0.9 1000 0.3 1800 0.25 [https://news.ycombinator.com/item?id=5872414]
 +
 +
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 [http://www.reddit.com/r/linux/comments/n8a2k/commandline_star_trek_engine_noise_comment_from/]
  
* https://freetousesounds.com/sound-library/
+
* http://www.reddit.com/r/scifi/comments/n7q5x/want_to_pretend_you_are_aboard_the_enterprise_for/c36xkjx
  
* http://patcharena.com/free-sounds/
 
  
* http://www.sounddogs.com/
+
* [https://code.google.com/archive/p/sonfilade/ 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.
  
* http://www.loopasonic.com/
 
  
* http://earmonk.com/free-sample-libraries/
+
* https://github.com/tartina/sox-plugins - Some additional plugins for SoX
  
* http://free-loops.com
+
* https://github.com/prof-spock/SoX-Plugins
  
* https://freesound.org
+
=== pyDub ===
** https://github.com/MTG/freesound
+
* [http://pydub.com/ pyDub] - Manipulate audio with an simple and easy high level interface [https://news.ycombinator.com/item?id=8445908]
 +
** https://github.com/jiaaro/pydub/
  
* http://www.bigsoundbank.com
+
=== Uos ===
 +
* http://wiki.lazarus.freepascal.org/uos - a multi-platform package of audio handling routines that unifies the best open-source audio libraries. play .mp3, .ogg, .wav, .flac, .m4a, .opus and cdrom audio files. 16, 32 or float 32 bit resolution. record all types of input into file, in 16 or 32 bit resolution, mono or stereo. add DSP effects and filters, however many you want and record it. play multiple inputs and outputs simultaneously. internet audio streaming of mp3 and opus files. produce sound by the build-in synthesizer. Uos can use the SoundTouch, PortAudio, SndFile, Mpg123, Faad, OpusFile and Mp4ff audio libraries. Included in the package: Examples and binary libraries for Linux 32/64, arm-Raspberry Pi, Windows 32/64, Mac OSX 32 and FreeBSD 32/64.
  
* http://eng.universal-soundbank.com
+
=== Signet ===
 +
* https://github.com/SamWindell/Signet - Command-line program for editing audio files, and assisting sample library development
  
 +
=== jackdiff ===
 +
* https://github.com/resinbeard/jackdiff - takes your dsp algorithm and with it processes a signal as a JACK client vomiting plots of input and output
  
* https://www.reddit.com/r/edmproduction/comments/1scywj/whats_your_favorite_sample_pack/
+
=== python-mix ===
 +
* https://github.com/j3ffhubb/python-mix - CLI audio file mixer using python-wavefile and numpy. Warning: Alpha-grade, under-tested code, use at your own risk
  
* [http://sampleswap.org/ SampleSwap] - Professional quality free loops and audio samples for electronic music
 
  
* http://www.sonniss.com/gameaudiogdc2016/ - 16Gb
+
=== Composers Desktop Project ===
 +
* [http://www.composersdesktop.com/ CDP Home Page] - The CDP software, first released in 1987, now contains hundreds of ways to transform digitally sampled sound. Its software belongs to the musique concrète category, as realised on computer. Processing is off-line. Although the processing is often faster than real-time, several processes could not run in real-time for technical reasons.The CDP software can be run via one of the two available GUIs or via command line / batch file.Based in the UK, CDP is an international network of composers and programmers guided by a vision of amazing sonic possibilities and how they can be woven into the fabric of music. We have been working together since 1986.
 +
** https://github.com/ComposersDesktop/CDP7
  
* [http://www.goldbaby.co.nz/freestuff.html goldbaby free page] - collection of free sample packs
+
* [http://www.composersdesktop.com/cdpsystemTechnical.html CDP Technical Info]
  
* http://wiki.laptop.org/go/Free_sound_samples
+
* [http://www.unstablesound.net/ Unstablesound]
  
* http://musicmoz.org/Sound_Files/Samples_and_Loops/
+
* https://en.wikipedia.org/wiki/Composers_Desktop_Project
  
* http://99sounds.org/free-sound-effects/
 
  
* http://audio.ibeat.org
+
* [http://www.ensemble-software.net/cdp.html CDP-Soundfiles] - The CDP system is one of the most comprehensive and innovative sound design suites available. Written largely by English electro-acoustic composer Trevor Wishart and reflecting his musical aesthetics in many ways, its processes cover almost every aspect of sound manipulation you've ever heard of, plus many that will be unfamiliar, and usually from an original or compositional viewpoint.CDP has over 430 processes covering EDIT-MIX functions, SOUNDFILE processes (time domain), SPECTRAL and PITCH processes, a small but significant SYNTH group, DATA GENERATING functions and a large INFO section. In addition there are over 100 DATA massaging functions and an extensive HELP.  
  
* http://www.sonniss.com/sound-effects/free-download-game-audio/ [https://www.reddit.com/r/gamedev/comments/2ynqyo/10gb_of_highquality_game_audio_free_download/] - 10Gb
 
  
* http://www.synthtopia.com/content/category/computer-music/free-sample-library-computer-music/
+
* [http://www.ensemble-software.net/sshaper.html Soundshaper] - a free control interface for the CDP sound transformation software, with an emphasis on speed and ease of use. CDP is a suite of over 430 command-line processes for creating, altering and manipulating sounds to make music. Soundshaper (PC only) fully supports the latest CDP Release 7.Soundshaper provides quick and easy access to CDP processes and parameters and assembles scripts which run CDP in the background. Soundshaper saves CDP output to temporary files, which you can save at any stage. Parameter values can be adjusted at any point, even after further processes have been run. Soundshaper's auto-conversion makes it possible to move seamlessly from one process to another while the program handles the different CDP file types.When run, processes are displayed in a table called the Patch Grid. Soundshaper patches are an easy way to store and recall whole sequences of CDP processes in a fully editable form. All values are retained and the patch can be re-run with any source. Soundshaper patches support up to 16 separate process chains, which can come from different sources. Soundshaper also supports bulk processing, presets and multiple parameter sets.
  
* http://www.musicradar.com/news/guitars/10000-free-sample-downloads-235814 - 100,000
 
  
* http://www.soundjig.com/ - mp3
+
* [http://www.trevorwishart.co.uk/slfull.html 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.
  
* http://glitchmachines.com/downloads/seism/
 
  
* http://glitchmachines.com/downloads/exophora/
+
* YouTube: [https://www.youtube.com/watch?v=LypM6-WDjL8 Creating a Processing Chain using CDP through Trevor Wishart's "Sound Loom"]
  
* http://glitchmachines.com/downloads/proximity/
+
* YouTube: [https://www.youtube.com/watch?v=XOSvdBWfU0I Trevor Wishart - Imago]
  
* http://glitchmachines.com/downloads/spore/
+
* YouTube: [http://www.youtube.com/watch?v=x-Or7VaMlEI Trevor Wishart - Tongues of Fire]
  
* http://glitchmachines.com/downloads/cybernetics/
 
  
 +
* [https://www.renoise.com/tools/cdp-interface Renoise CDP Interface]
 +
** http://createdigitalmusic.com/2014/05/renoise-community-already-tool-cdp-free-easy-sound-mangling-results/
  
 +
* http://createdigitalmusic.com/2014/05/watch-bt-reveal-sound-design-tricks-free-geeky-cdp-learn/
  
* [http://samples.kb6.de/downloads.php 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!
 
  
* http://rekkerd.org/category/news/samples-and-sound-libraries/
+
* Xenakios's Blog: [https://xenakios.wordpress.com/2014/07/16/cdp-frontend-reaper-extension-plugin/ CDP frontend Reaper extension plugin]
  
* http://www.mediafire.com/download/3tgqrxbobr5l3i5/Sample+Pack+1.rar - 1.7GB drums, no soundfont
+
=== Mammut ===
 +
* [http://archive.notam02.no/arkiv/doc/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.
 +
** https://github.com/kmatheussen/mammut
  
* http://bluesblast.com/
+
* YouTube: [https://www.youtube.com/watch?v=j3B5xdMFgec After Frequency Manipulation? Try Mammut!]
  
* http://www.smarthobbymusician.com/over-300-drum-tracks/ [https://news.ycombinator.com/item?id=11057760]
+
=== Fscape ===
 +
* http://www.sciss.de/fscape/
 +
** https://github.com/Sciss/FScape
  
* [https://www.wavealchemy.co.uk/ms-20-mini-drums/pid154/ MS-20 mini Drums]
+
* https://vimeo.com/26509124
  
 +
=== FreqTweak ===
 +
* [http://freqtweak.sourceforge.net/ 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.
  
* http://www.philharmonia.co.uk/explore/sound_samples
 
  
* https://www.voclr.it
+
* https://github.com/ycollet/freqtweak - Mirror of the original freqtweak repository
  
* [http://www.voxforge.org/ 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).
+
* https://github.com/nettings/freqtweak - additional compile fixes on top of ycollet's fork of Jesse Chappell's freqtweak
  
* [http://www.sonus.ca/ 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.
+
=== TAPESTREA ===
 +
* [http://taps.cs.princeton.edu/ 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
  
* [http://www.findsounds.com/ FindSounds] - Search the Web for Sounds
+
* http://wiki.cs.princeton.edu/index.php/Taps
  
* [https://musical-artifacts.com/ 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.
+
* YouTube: [https://www.youtube.com/watch?v=cBGcLXL6Cng Tapestrea demo]
  
* [http://sounds.bl.uk/ 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.
+
Build fails on Linux. Fixing two or three indirect includes gets further, but fails on building it's included [old] chuck.
  
* [http://www.soundsurvey.org.uk/ London Sound Survey] - a growing collection of Creative Commons-licensed sound recordings of people, places and events in the capital. Historical references too are gathered to find out how London's sounds have changed. - See more at: http://www.soundsurvey.org.uk/#sthash.MvvZ0s1v.dpuf
+
=== SPEAR ===
 +
* [http://www.klingbeil.com/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).
  
* [http://macaulaylibrary.org/ 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.
+
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.
  
* [https://soundkit.io/ 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. [https://news.ycombinator.com/item?id=8527861]
+
Windows/Mac only :(
  
 +
=== Ceres3 ===
 +
* [http://www.music.columbia.edu/~stanko/About_Ceres3.html 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.
  
* [http://freepats.zenvoid.org/ 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.
+
* http://www.music.columbia.edu/~stanko/Ceres3_help-old.html
  
 +
* https://github.com/jeremysalwen/Ceres4 - build fails with linked use of depreciated OSS code
  
* [http://trekcore.com/audio/ TrekCore: Audio] - Welcome to the best resource for iconic Star Trek sounds!
+
* https://github.com/jeremysalwen/Ceres4
  
* YouTube: [http://www.youtube.com/watch?v=TFUK5NGsZoI Soothing Rain Falling on a Sailboat Relaxing Nature Sounds]
+
=== ATS ===
 +
* [https://dxarts.washington.edu/technology/ats ATS] is a LISP environment for 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.
  
* [https://www.popuparchive.org/ Pop Up Archive] makes sound searchable using cutting edge speech-to-text technology.
+
* [https://ccrma.stanford.edu/~juan/ATS.html 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.
  
* [http://asoftmurmur.com/ A SOFT MURMER] - Ambient sounds to wash away distraction.
 
  
* http://www.bandshed.net/sounds/
+
* https://github.com/jamezilla/ats
  
* http://www.audioatrocities.com/games/index.html
 
  
 +
Only takes mono .wav files
  
* http://fmod.io/ - 99c a sample [https://news.ycombinator.com/item?id=11245709]
+
=== Cecilia ===
 +
* [http://ajaxsoundstudio.com/software/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.
 +
** https://github.com/belangeo/cecilia5
  
 +
* YouTube: [https://www.youtube.com/watch?v=g56COygk8ZA Tutorial: Working with Cecilia and Audio]
  
* http://sleeptalkinman.blogspot.co.uk/
+
=== Loris ===
 +
* [http://www.cerlsoundgroup.org/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 ===
 +
* [https://www.upf.edu/web/mtg/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.
 +
** https://github.com/MTG/sms-tools
  
few of my favourite
+
=== FxEngine ===
* crumpling silver papers
+
* [https://sourceforge.net/projects/smprocess/ 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.
* bad tube track (in summer evening)
 
* water (at night)
 
* Flogsta scream
 
* iceflow cracking
 
* steel line against mast/loose cable in tall lamp
 
  
=== Corpus ===
+
* [https://sourceforge.net/projects/fxjackpack/ FxJackPack] - contains two plugins for the FxEngine framework which enables the recording and playback sound through JACK (Jack Audio Connection Kit).
* https://en.wikipedia.org/wiki/Speech_corpus
 
  
 +
=== NASPRO ===
 +
* [http://naspro.sourceforge.net/libraries.html NASPRO] - acronym for "NASPRO Architecture for Sound PROcessing" is a collection of free and open source sound processing software built around the LV2 plugin standard.
 +
** https://sourceforge.net/projects/naspro
  
* https://www.univie.ac.at/voice/ VOICE - the Vienna-Oxford International Corpus of English!
+
=== Aglaophone ===
 +
* http://pe2bz.philpem.me.uk/ElectronicPrograms/-%20ELF-Programs/AglaPhone-Linux/Index
  
 +
=== SpectMorph ===
 +
* [http://www.spectmorph.org/ 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.
  
* http://www.ucl.ac.uk/english-usage/projects/ice-gb/beta
+
* YouTube: [https://www.youtube.com/watch?v=RPR_vx8JQhc SpectMorph Overview]
  
  
* [http://www.natcorp.ox.ac.uk 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
+
* https://github.com/swesterfeld/spectmorph-instruments - This repository contains the samples and instrument editor meta data to build the standard instrument tarball for SpectMorph
  
* http://www.phon.ox.ac.uk/AudioBNC
+
=== Spectral Toolbox ===
 +
* [https://www.dynamictonality.com/spectools.htm 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.
  
 +
=== Wav2Spectrum ===
 +
* https://github.com/paulnasca/wav2spectrum - a simple application which takes a small chunk (window) from input wav and outputs the frequencies one by one (a sweep) into another wav file. It is very useful to hear the harmonics (one by one) from a sound. It can be used as a spectrum tool for the blind people who are interested in sound analysis.
  
* http://www.phon.ox.ac.uk/corpus
+
=== wave-tools ===
** http://kochanski.org/gpk/papers/2010/aesop_data_collect/html/index.html
+
* https://github.com/ZoeB/wave-tools - Command line tools for wave files
  
* http://groups.inf.ed.ac.uk/maptask
+
=== swingify ===
 +
* [http://www.musinformatics.com/swingify Swingify] - Upload any audio file and make it swing.
 +
** https://github.com/Curly-Mo/swingify
  
* http://www.phon.ox.ac.uk/tick1_info
+
=== Melodyne ===
 +
$
  
 +
* YouTube: [https://www.youtube.com/watch?v=jFCjv4_jqAY Melodyne - Direct Note Access]
  
* https://en.wikipedia.org/wiki/Praat
+
=== Denoise ===
 +
==== Gnome Wave Cleaner ====
 +
* [http://gwc.sourceforge.net/ Gnome Wave Cleaner] - mainly to remove clicks from recorded vinyl
  
 +
==== Postfish ====
 +
* http://linuxmao.org/Postfish
  
 +
* https://svn.xiph.org/trunk/postfish/
  
 +
==== audio-declipper ====
 +
* https://github.com/kripton/audio-declipper - Proof-of-concept (or more) to declip sample-based audio files
  
* [http://dunya.compmusic.upf.edu 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.
+
=== Neural network ===
** https://github.com/MTG/dunya - The Dunya music browser
+
* https://github.com/iver56/cross-adaptive-audio
** https://github.com/MTG/dunya-desktop
 
** https://github.com/MTG/pycompmusic
 
  
* [http://mtg.upf.edu/node/2832 Life Soundtrack Recovery for Alzheimer’s disease patients]
 
** https://github.com/MTG/lifesoundtrack
 
  
=== Stems ===
+
* http://crossadaptive.hf.ntnu.no/index.php/2016/06/27/evolving-neural-networks-for-cross-adaptive-audio-effects/
* http://remixcomps.com/
 
* http://www.foem.info/
 
* https://indabamusic.com/opportunities
 
* http://www.reddit.com/r/SongStems/
 
  
=== Historical ===
 
* http://www.conservethesound.de/
 
  
* http://www.dd1us.de/spacesounds%204b.html [https://news.ycombinator.com/item?id=8584677]
+
* [https://looking-to-listen.github.io/ Looking to Listen at the Cocktail Party: Audio-Visual Speech Separation]
** http://www.rtl-sdr.com/receiving-dead-satellites-rtl-sdr
 
  
== Sampler ==
 
=== Specimen ===
 
* [http://zhevny.com/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 ===
+
* https://github.com/GuitarML/NeuralPi - Raspberry Pi guitar pedal using neural networks to emulate real amps and pedals.
* [http://petri-foo.sourceforge.net/ Petri-Foo] is a fork of the Specimen sampler project. Specimen was originally developed by Pete Bessman. Petri-Foo was forked from Specimen SVN revision 89 by James Morris in February of 2011.
+
** [https://hackaday.com/2021/05/30/neural-networks-emulate-any-guitar-pedal-for-120/ Neural Networks Emulate Any Guitar Pedal For $120]* [https://hackaday.com/2021/05/30/neural-networks-emulate-any-guitar-pedal-for-120/ Neural Networks Emulate Any Guitar Pedal For $120]
** https://github.com/jwm-art-net/Petri-Foo
 
** https://github.com/sollapse/Petri-Foo - Multichannel output grouping for patches by sollapse
 
  
petri-foo -a
 
  # autoconnect to system output in JACK
 
  
=== samplv1 ===
+
* [https://arxiv.org/abs/2111.05011 RAVE: A variational autoencoder for fast and high-quality neural audio synthesis] - Deep generative models applied to audio have improved by a large margin the state-of-the-art in many speech and music related tasks. However, as raw waveform modelling remains an inherently difficult task, audio generative models are either computationally intensive, rely on low sampling rates, are complicated to control or restrict the nature of possible signals. Among those models, Variational AutoEncoders (VAE) give control over the generation by exposing latent variables, although they usually suffer from low synthesis quality. In this paper, we introduce a Realtime Audio Variational autoEncoder (RAVE) allowing both fast and high-quality audio waveform synthesis. We introduce a novel two-stage training procedure, namely representation learning and adversarial fine-tuning. We show that using a post-training analysis of the latent space allows a direct control between the reconstruction fidelity and the representation compactness. By leveraging a multi-band decomposition of the raw waveform, we show that our model is the first able to generate 48kHz audio signals, while simultaneously running 20 times faster than real-time on a standard laptop CPU. We evaluate synthesis quality using both quantitative and qualitative subjective experiments and show the superiority of our approach compared to existing models. Finally, we present applications of our model for timbre transfer and signal compression. All of our source code and audio examples are publicly available.  
* [http://samplv1.sourceforge.net/samplv1-index.html 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.
+
** https://github.com/caillonantoine/RAVE - variational autoencoder for fast and high-quality neural audio synthesis
** http://sourceforge.net/projects/samplv1/
 
  
=== drumkv1 ===
 
* [http://drumkv1.sourceforge.net drumkv1] is an old-school all-digital drum-kit sampler synthesizer with stereo fx.
 
** http://sourceforge.net/projects/drumkv1
 
  
=== Fabla ===
 
* [http://openavproductions.com/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!
 
  
* [http://openavproductions.com/fabla2/ Fabla2] is an advanced sampler with multiple layers, banks, pads, integrated FX and routing. Current status: alpha testing – please be patient.
+
* [https://csteinmetz1.github.io/tcn-audio-effects/ Efficient neural networks for real-time analog audio effect modeling] -  Deep learning approaches have demonstrated success in the task of modeling analog audio effects such as distortion and overdrive. Nevertheless, challenges remain in modeling more complex effects along with their variable parameters, such as dynamic range compressors. Previous methods not only exhibit a high level of noise and artifacts, they also require large training datasets, are computationally complex, and noncausal, prohibiting real-time operation. In this work, we demonstrate that more efficient temporal convolution networks (TCNs), shallow networks that exploit very large dilation factors to attain significant receptive field, can achieve state-of-the-art performance. We demonstrate that not only do these models produce results perceptually indistinguishable from the original effect, but unlike previous methods, are also capable of running in real-time on GPU and CPU, and can be trained using only 1% of the training data (~10 min) from previous methods.
** YouTube: [https://www.youtube.com/watch?v=w-VpEk53jHE Harryhaaren: OpenAV on Fabla2 #minilac16]
+
** https://github.com/csteinmetz1/micro-tcn
  
=== Tapeutape ===
 
* [http://hitmuri.net/index.php/Software/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 ===
 
* [http://simsam.sourceforge.net/ 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 ===
+
* https://github.com/erl-j/neural-instrument-cloning - In this project we combine techniques from neural voice cloning and musical instrument synthesis to achieve good results from as little as 16 seconds of target data.
* [http://riggable.com/composite/plugins/sampler/1/ 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 ===
 
* [http://lsp-plug.in/?page=manuals&section=multisampler_x48 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 ===
+
* https://github.com/lucidrains/denoising-diffusion-pytorch - Implementation of Denoising Diffusion Probabilistic Model in Pytorch. It is a new approach to generative modeling that may have the potential to rival GANs. It uses denoising score matching to estimate the gradient of the data distribution, followed by Langevin sampling to sample from the true distribution.
* http://manpages.ubuntu.com/manpages/zesty/man1/aucat.1.html
 
  
=== Chionic ===
+
== Audio and MIDI looping ==
* [http://reduz.com.ar/chionic-part1/ 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.
+
See also [[Sampling#Audio looping]] and [[MIDI#MIDI looping]]
** https://sourceforge.net/projects/cheesetronic/files/Chionic/
 
  
=== Anja ===
+
=== Giada ===
* [http://milasudril.github.io/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.
+
* [http://www.giadamusic.com/ 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.
** https://github.com/milasudril/anja
+
** https://github.com/monocasual/giada
  
=== Ninjas ===
+
* https://www.giadamusic.com/documentation
* 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 ===
+
* YouTube: [https://www.youtube.com/channel/UCAAZJ9SX0RZ9AiAToF6ebjA Giada LoopMachine]
* [http://space.twc.de/~stefan/jacksampler.php 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.
+
** [https://www.youtube.com/watch?v=dYKxUZgsB-o Giada tutorial #8 - Loop modes overview]
 +
** [https://www.youtube.com/watch?v=UN7Uq9Kahqw Giada tutorial #3 - The action editor]
  
=== jass ===
 
* https://github.com/fps/jass - A rather simple jack based sampler
 
  
=== Dirt ===
+
What can you control with MIDI:
* https://github.com/tidalcycles/Dirt - Experimental sample playback. An unimpressive thingie for playing bits of samples with some level of accuracy.
+
* 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.
  
=== JTrigger ===
+
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.
* [http://web.archive.org/web/20050915061322/http://sparked.zadzmo.org:80/jtrigger/index.html 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 ===
+
* https://github.com/monocasual/giada-midimaps
* [http://www.vemberaudio.se/shortcircuit.php 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.
+
== Soundscape ==
 +
=== Boodler ===
 +
* [http://boodler.org/ 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.
 +
** https://github.com/ziz/boodler
  
Windows VST
+
* YouTube: [https://www.youtube.com/watch?v=x_DDXsCPGOA Owen Williams - Advanced Soundscapes with Boodler]
  
=== TX16Wx Software Sampler ===
+
=== Klangwunder3000 ===
* http://www.tx16wx.com - Windows/Mac, VST, AU
+
* https://github.com/bk138/klangwunder3000/ - a cross-platform soundscape generator. It loads a set of sound files and associated control data and generates a constantly changing aural ambient.
  
== Soundfonts ==
+
=== Random Parallel Player ===
a mess
+
* 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 [https://louigiverona.com/?page=projects&s=writings&t=linux&a=linux_randomhouse here]
  
* 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.
+
=== 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. :)
  
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.
+
=== Foco ===
 +
* https://github.com/akashnimare/foco - a cross-platform desktop app  which runs in menubar. Foco boosts your productivity  by creating perfect productive environment. It has the best sounds for getting work done .
  
=== Formats ===
+
=== Blanket ===
==== SF2 ====
+
* https://github.com/rafaelmardojai/blanket - Improve focus and increase your productivity by listening to different sounds. Or allows you to fall asleep in a noisy environment.
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.
 
  
* [http://www.polyphone.fr/index.php?lang=en&page=home 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.
+
=== jungle ===
 +
* [https://www.vanheusden.com/jungle/ jungle] - an audio-system. It allows you to create an ambiance using random audio-samples. It works with systems that have one or more audio-devices (with one or more channels) and can also use multiple systems (e.g. a couple of raspberry pis) in a cluster.This software requires a Linux system. It uses the ALSA sub system.I run it with a server-pc and 3 raspberry pies.
  
* [https://code.google.com/p/hydro2sf2/ hydro2sf2] - convert hydrogen drumkit into sf2 soundfont
 
  
==== SFZ ====
+
=== Web ===
* http://sfzformat.com/
+
* https://ambient-mixer.com
  
Comes in SFZ 1.0 and SFZ 2.0 varieties.
 
  
* [http://patcharena.com/synth-resources/sfz-format-resources/ sfz Format Resources]
+
* [https://mynoise.net/noiseMachines.php myNoise] - background noises and relaxing soundscape generator, web/app
  
* [http://drealm.info/sfz/plj-sfz.xhtml sfz format] - Peter L Jones
+
== Sonification ==
 +
See also [[Synthesis#Graphics synthesis]]
  
* [http://drealm.info/sfz/ sound font mappings] (for various sample packs)
+
* https://en.wikipedia.org/wiki/Sonification - the use of non-speech audio to convey information or perceptualize data. Auditory perception has advantages in temporal, spatial, amplitude, and frequency resolution that open possibilities as an alternative or complement to visualization techniques. For example, the rate of clicking of a Geiger counter conveys the level of radiation in the immediate vicinity of the device.
  
  
* [https://github.com/rock-hopper/makesfz 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).
 
  
* [https://linuxmusicians.com/viewtopic.php?f=50&t=17694 SFZ Automatic Creator] - python script
+
* PDF: [http://soundobject.org/SObBook/SObBook_JUL03.pdf The Sounding Object] - Edited by Davide Rocchesso and Federico Fontana
  
 +
* [https://sonification.de/handbook/ The Sonification Handbook] - Edited by Thomas Hermann, Andy Hunt, John G. Neuhoff
  
* [https://github.com/raboof/sfarkxtc sfarkxtc] - .sfark extractor, console version. Converts soundfonts in the legacy sfArk v2 file format to sf2.
 
  
* [http://www.personalcopy.com/sfpack.htm sfpack] - .sfpack sfArk compression
+
* [http://herman.haverkort.net/sound_of_space-filling_curves sound_of_space-filling_curves] - [https://news.ycombinator.com/item?id=16139404]
  
  
* http://www.mildon.me/sfzdesigner - Windows
+
* [http://www.codesounding.org/ CodeSounding] - CodeSounding is an open source sonification framework which makes possible to hear how any existing Java program "sounds like", by assigning instruments and pitches to code statements (if, for, etc) and playing them as they are executed at runtime. In this way the flowing of execution is played as a flow of music and its rhythm changes depending on user interaction.
  
* [http://www.mildon.me/apps/oneshot 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.
 
  
 +
* https://github.com/markandrus/Sonify - JACK plugin that encodes images into audio and vice-versa, in realtime.
 +
** http://mrkrbrts.com/blog/
  
* https://github.com/danielappelt/battery_to_sfz - battery_to_sfz allows the conversion of Native Instruments Battery v1 (.kit) files into sfz format.
 
  
==== DLS ====
+
* [http://hypermammut.sourceforge.net/ HyperMammut] - transform sounds to images and vice-versa using single BIG Fourier Transforms (or DCT/DST,etc.).
* https://en.wikipedia.org/wiki/DLS_format - midi spec
 
  
==== NKI ====
 
* [https://www.linuxsampler.org/nkitool/ 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 ====
+
* https://github.com/chronopoulos/heliosonic - Tools for the sonification of helioseismic data.
* https://github.com/hydrogen-music/hydrogen/wiki/Drumkit-format
 
  
* https://sourceforge.net/projects/hydrogen/files/Sound%20Libraries/Main%20sound%20libraries/
 
  
* https://musical-artifacts.com/artifacts?formats=h2drumkit
+
* [Listen to your web pages](https://gist.github.com/tomhicks/6cb5e827723c4eaef638bf9f7686d2d8) - tomhicks/plink-plonk.js
  
==== Giga ====
 
* [http://gigasamples.com/ GigaSamples Archive Site]
 
  
 +
* https://github.com/rodneydup/SuperMarioBrosSonification - Maps of Super Mario Bros - Sonified
  
* http://www.vstmuseum.com/grid_vst_KONTAKT/
+
== Retargeting ==
 +
* [https://cgl.ethz.ch/publications/papers/paperWen13.php Scalable Music: Automatic Music Retargeting and Synthesis] - S. Wenner, J.C. Bazin, A. Sorkine-Hornung, C. Kim, M. Gross. In this paper we propose a method for dynamic rescaling of music, inspired by recent works on image retargeting, video reshuffling and character animation in the computer graphics community. Given the desired target length of a piece of music and optional additional constraints such as position and importance of certain parts, we build on concepts from seam carving, video textures and motion graphs and extend them to allow for a global optimization of jumps in an audio signal. Based on an automatic feature extraction and spectral clustering for segmentation, we employ length-constrained least-costly path search via dynamic programming to synthesize a novel piece of music that best fulfills all desired constraints, with imperceptible transitions between reshuffled parts. We show various applications of music retargeting such as part removal, decreasing or increasing music duration, and in particular consistent joint video and audio editing.
 +
** YouTube: [https://www.youtube.com/watch?v=UlNClqmWN3Y Scalable Music: Automatic Music Retargeting and Synthesis (Eurographics 2013)]
  
  
* [http://doc.linuxsampler.org/Gigedit 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.
+
* https://github.com/ucbvislab/radiotool - a python library that aims to make it easy to create audio by piecing together bits of other audio files. This library was originally written to enable my research in audio editing user interfaces, but perhaps someone else might find it useful.
** 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.  
 
  
 +
== Web ==
 +
See also [[Web Audio]], [[Drumming#Web]]
  
* [https://www.linuxsampler.org/libgig 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 ====
+
* [https://clyp.it Clyp] - Upload high-quality audio, collaborate or get feedback, and easily share anywhere.
* https://www.drumgizmo.org/wiki/doku.php?id=documentation:file_formats
 
  
=== 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 ====
+
* [https://vocaroo.com/ Vocaroo] - Online voice recorder
* http://www.dskmusic.com/dsk-music-box/ DSK Music Box – Beautiful old music box sound. No parameters! Just a little toy
 
  
==== gmsynth.lv2 ====
 
* https://github.com/x42/gmsynth.lv2 - a General MIDI Sample Player Plugin
 
  
 +
* [https://www.scmplayer.net/ SCM Music Player] - seamless music for your website
  
=== Players ===
 
==== LinuxSampler ====
 
* [http://www.linuxsampler.org/ 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.
 
** https://en.wikipedia.org/wiki/LinuxSampler
 
  
* [http://wootangent.net/2011/07/everything-you-always-wanted-to-know-about-linuxsampler/ everything you always wanted to know about linuxsampler]
+
=== Background ===
 +
* [https://www.rainymood.com/ Rainy Mood] - #1 Rain Sounds • Sleep & Study
  
 +
* [https://mynoise.net myNoise] - Focus at Work • Relax at Home • Sleep at Night
  
* [http://qsampler.sourceforge.net/qsampler-index.html 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).
+
* [https://coffitivity.com/ Coffitivity]
  
* [http://jsampler.sourceforge.net/ 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.
+
* [http://rainycafe.com/ Rainy Cafe] - Ambient White Noise Generator. 雨のカフェ
https://launchpad.net/ubuntu/+source/fluid-soundfont
 
  
* https://sourceforge.net/projects/ls16/ - a convenience front-end to LinuxSampler, featuring 16 sampler channels with configurable MIDI inputs and one stereo audio output.
+
* [http://timeforzen.com/ Time for Zen] - The best meditation, nature music collection on the web.
  
* https://sourceforge.net/projects/qgiged/ - a sampled instrument visual editor for LinuxSampler.
+
* [https://raining.fm raining.fm] - Relaxing rain audio for work, play and sleep
  
 +
* [https://asoftmurmur.com/ A Soft Murmur] - [https://news.ycombinator.com/item?id=6975538]
  
 +
== Tuning ==
 +
=== Dart-Mic ===
 +
* [http://deibelman.github.io/dart-mic Dart-Mic] - a Javascript library which listens to microphone input and performs pitch/note detection, volume detection, recording, and general purpose data processing. It makes use of the Web Audio APi (which is only supported by Chrome currently) and DSP.js.
  
==== FluidSynth ====
+
=== AudioNotch ===
* [http://fluidsynth.elementsofsound.org/ 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.
+
* [https://www.audionotch.com/app/tune/ AudioNotch] - Tinnitus Treatment Sound Therapy - Tuner and Tone Generator
** https://en.wikipedia.org/wiki/FluidSynth
 
  
* http://sourceforge.net/projects/fluidsynth/
 
  
* http://sourceforge.net/p/fluidsynth/wiki/Applications/
+
=== x42-tuner ===
 +
* [http://x42-plugins.com/x42/x42-tuner x42-tuner] - aka Tuna.LV2, an musical instrument tuner with strobe characteristics in LV2 plugin format.
 +
** https://github.com/x42/tuna.lv2
  
* http://lsn.ponderworthy.com/doku.php/fluidsynth
+
=== StompTuner ===
 +
* https://github.com/brummer10/StompTuner - a Strobe Tuner in Stomp Box Format. The Strobe provide 2 indicators. The outer ring have a accuracy of 1.0 Cent, the inner ring have a accuracy at 0.1 Cent. The working frequency range is from 24 - 998 Hz. The reference Pitch could be selected between 432 - 452 Hz.
  
 +
=== XTuner ===
 +
* https://github.com/brummer10/XTuner - Virtual Tuner for Jack Audio Connection Kit, including NSM support
  
* [http://qsynth.sourceforge.net/ Qsynth] - Qt GUI Interface for FluidSynth
+
=== tunescope ===
 +
* 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.
  
 +
=== FMIT ===
 +
* [http://gillesdegottex.github.io/fmit/ FMIT] - Free Music Instrument Tuner, is a graphical utility for tuning your musical instruments, with error and volume history and advanced features.
  
* [http://www.colorfulsoftware.com/emap 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.
+
=== LINGOT ===
** https://www.youtube.com/watch?v=HqftYOQJFcc
+
* [http://www.nongnu.org/lingot/ LINGOT] - 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/ibancg/lingot
  
* https://github.com/falkTX/FluidPlug - SoundFonts as LV2 plugins via FluidSynth
+
=== jackstrobe ===
 +
* https://github.com/jessecrossen/jackstrobe - A simple strobe tuner using JACK and Qt 5.
  
* 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 ====
+
=== gtkguitune ===
* [http://www.drumgizmo.org/wiki/ 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.
+
* https://github.com/bobek/gtkguitune - a program for tuning guitars (and other instruments,. It is actually an oscilloscope which counts the passes between two trigger levels per time, calculates the frequency and shows the tone on a tone-scale.
  
* http://www.drumgizmo.org/wiki/doku.php?id=cli-howto
 
  
drumgizmo -i jackmidi -o jackaudio [drumkitfile.xml]
+
=== Guitar Tuning Database ===
 +
* [https://www.gtdb.org/ Guitar Tuning Database]
  
  
* http://www.drumgizmo.org/wiki/doku.php?id=kits - 2 2Gb+ kits, 1 1Gb+ kit, one non velocity responsive kit
+
=== alt-tuner ===
 +
* [http://www.tallkite.com/alt-tuner.html alt-tuner] - a DAW microtonal tuning plug-in that retunes almost every midi keyboard or softsynth. It runs on PCs, macs and Linux/Wine machines. Click here to buy it.
  
  
* [http://www.drumgizmo.org/wiki/doku.php?id=getting_dgedit DGEdit] - the DrumGizmo drumkit editor
+
=== MTuner ===
 +
* https://www.meldaproduction.com/MTuner - a simple Windows VST audio frequency analyzer designed mostly for tuning guitars and other instruments. It detects frequency, note and deviation from correct pitch in cents, resolving frequencies in the range 50Hz to 2kHz, which is enough for most instruments and vocals.
  
==== DrMr ====
+
=== tuner ===
* [https://github.com/nicklan/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.
+
* https://github.com/logsol/tuner - A simple standalone app for macOS based on JUCE that detects the frequency of an instrument and shows its note based on autocorrelation.
  
==== Konfyt ====
+
== Machine learning ==
* [http://www.noedig.co.za/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.
+
See also [[ML / AI#Audio]], [[Effects#Machine learning]], [[Generative#Neural net]], [[Synth vox]]
  
==== calfbox ====
+
* https://news.ycombinator.com/item?id=19161368
* [https://github.com/kfoltman/calfbox calfbox]  - command-line jack app and python module to load SF2 and GIG files. lisalo[Qt] and laborejo use it [https://linuxmusicians.com/viewtopic.php?f=47&t=11095]
 
  
==== SFZero ====
 
* https://github.com/altalogix/SFZero
 
** http://www.mucoder.net/blog/2016/03/24/sfzero.html
 
  
==== sforzando ====
+
* https://github.com/bmcfee/pumpp - practically universal music pre-processorpumpp up the jamsThe goal of this package is to make it easy to convert pairs of (audio, jams) into data that can be easily consumed by statistical algorithms.
* [https://www.plogue.com/products/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 ====
 
* [http://audio.rosseauxnet.de/software/plugins/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 ====
 
* [http://www.swamiproject.org/ 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 ====
+
* [https://maciek-tomczak.github.io/maciek.github.io/Audio-Style-Transfer-with-Rhythmic-Constraints/ Audio Style Transfer with Rhythmic Constraints | Maciek Tomczak] - https://github.com/maciek-tomczak/audio-style-transfer-with-rhythmic-constraints
* [https://github.com/surfacepatterns/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 ====
 
* [http://www.synthfont.com/ 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. - $
 
  
* [http://www.synthfont.com/Viena_news.html Viena]
+
* https://sites.google.com/view/drumgan
** YouTube: [https://www.youtube.com/watch?v=pxVJTtihl_A Viena - Soundfonts]
 
  
* [http://www.synthfont.com/SyFon_news.html 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).  
+
* https://github.com/SoMA-group/ADS - TensorFlow implementation of adversarial drum synth (ADS) from the paper Adversarial Synthesis of Drum Sounds @ The 2020 DAFx Conference.  
  
  
* [http://www.zampler.de/ 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.
 
  
* [http://www.synthfont.com/VSTSF_news.html VSTSynthFont] - windows
 
  
* [https://kode54.net/bassmididrv/ BASSMIDI MIDI synthesizer driver] - freeware SoundFont based Windows MIDI system driver
+
* https://github.com/csteinmetz1/auraloss - Collection of audio-focused loss functions in PyTorch
  
=== Downloads ===
 
to sort into the above formats
 
  
 +
* https://github.com/gzhu06/Y-vector
  
* http://wiki.linuxaudio.org/wiki/soundfont_collection
 
  
* https://musical-artifacts.com/artifacts?tags=soundfont
+
* [https://www.youtube.com/playlist?list=PL-wATfeyAMNoirN4idjev6aRu8ISZYVWm PyTorch for Audio + Music Processing - YouTube]
* https://musical-artifacts.com/artifacts?formats=sfz
 
  
  
* [https://www.linuxsampler.org/instruments.html LinuxSampler.org - Free Sample Libraries]
 
  
* [https://musescore.org/en/handbook/soundfont MuseScore SoundFont list]
+
* https://github.com/KinWaiCheuk/nnAudio - an audio processing toolbox using PyTorch convolutional neural network as its backend. By doing so, spectrograms can be generated from audio on-the-fly during neural network training and the Fourier kernels (e.g. or CQT kernels) can be trained. Kapre has a similar concept in which they also use 1D convolutional neural network to extract spectrograms based on Keras.Other GPU audio processing tools are torchaudio and tf.signal. But they are not using the neural network approach, and hence the Fourier basis can not be trained. As of PyTorch 1.6.0, torchaudio is still very difficult to install under the Windows environment due to sox. nnAudio is a more compatible audio processing tool across different operating systems since it relies mostly on PyTorch convolutional neural network. The name of nnAudio comes from torch.nn
  
* [https://bb.linuxsampler.org/viewforum.php?f=8 Sample Libraries] - LinuxSampler bb
 
* [https://bb.linuxsampler.org/viewtopic.php?f=8&t=11 List of sample libraries]
 
  
  
* [http://freepats.zenvoid.org/ Freepats] is a project to create a free and open set of instrument patches, in any format, that can be used with softsynths.  
+
* [https://salu133445.github.io/musegan MuseGAN] - a project on music generation. In a nutshell, we aim to generate polyphonic music of multiple tracks (instruments). The proposed models are able to generate music either from scratch, or by accompanying a track given a priori by the user.
** http://freepats.zenvoid.org/Piano/
+
** https://github.com/salu133445/musegan
  
* http://kaleidonkep99.altervista.org/steinway-b-211.html
 
** https://github.com/KaleidonKep99/Steinway-B-211
 
  
* http://kaleidonkep99.altervista.org/keppy-s-steinway-piano.html
+
* https://github.com/SoMA-group/style-drumsynth - Style-based Neural Drum Synthesis with GAN inversion
** https://github.com/KaleidonKep99/Keppy-Steinway-Piano
 
  
* https://github.com/KaleidonKep99/Flashback-D-274
 
  
  
* [http://www.karoryfer.com/karoryfer-samples Sample libraries from Karoryfer]
+
* https://github.com/serkansulun/deep-music-enhancer - Source code for paper "On Filter Generalization for Music Bandwidth Extension Using Deep Neural Networks", Serkan Sulun, Matthew E. P. Davies, 2020. https://arxiv.org/abs/2011.07274v2
  
  
* [http://www.schristiancollins.com/generaluser.php 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.
+
* [https://csteinmetz1.github.io/steerable-nafx/ Steerable discovery of neural audio effects] -  Applications of deep learning for audio effects often focus on modeling analog effects or learning to control effects to emulate a trained audio engineer. However, deep learning approaches also have the potential to expand creativity through neural audio effects that enable new sound transformations. While recent work demonstrated that neural networks with random weights produce compelling audio effects, control of these effects is limited and unintuitive. To address this, we introduce a method for the steerable discovery of neural audio effects. This method enables the design of effects using example recordings provided by the user. We demonstrate how this method produces an effect similar to the target effect, along with interesting inaccuracies, while also providing perceptually relevant controls.
 +
** https://github.com/csteinmetz1/steerable-nafx
  
* [http://www.schristiancollins.com/vi-guitar.php 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'''
 
  
* [http://www.schristiancollins.com/vi-orchestra.php 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.
+
* https://github.com/jhtonyKoo/e2e_music_remastering_system - This repository includes source code and pre-trained models of the work End-to-end Music Remastering System Using Self-supervised and Adversarial Training by Junghyun Koo, Seungryeol Paik, and Kyogu Lee.
  
* [http://www.schristiancollins.com/vi-percussion.php 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.
 
  
* [http://www.schristiancollins.com/vi-misc.php Boy Band (aka Temmie)]
+
* https://github.com/SonyCSLParis/music-inpainting-ts - A collection of web interfaces for AI-assisted interactive music creation
  
  
* http://www.arachnosoft.com/main/soundfont.php
+
* https://github.com/eloimoliner/audio-inpainting-diffusion
** http://www.arachnosoft.com/main/download.php?id=soundfont
 
  
  
* [https://sites.google.com/site/soundfonts4u/ 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.
 
  
* http://schristiancollins.com/soundfonts/
+
* https://github.com/teticio/audio-diffusion - Apply diffusion models using the new Hugging Face diffusers package to synthesize music instead of images.
  
* http://www.fruityclub.net/ressources-samples-soundfonts/banques-sonores-le-meilleur-du-net
 
  
* http://www.ibiblio.org/thammer/HammerSound/localfiles/soundfonts/ - many misc files
+
* [https://audioldm.github.io/ AudioLDM: Text-to-Audio Generation with Latent Diffusion Models - Speech Research]Text-to-audio (TTA) system has recently gained attention for its ability to synthesize general audio based on text descriptions. However, previous studies in TTA have limited generation quality with high computational costs. In this study, we propose AudioLDM, a TTA system that is built on a latent space to learn the continuous audio representations from contrastive language-audio pretraining (CLAP) latents. The pretrained CLAP models enable us to train latent diffusion models (LDMs) with audio embedding while providing text embedding as a condition during sampling. By learning the latent representations of audio signals and their compositions without modeling the cross-modal relationship, AudioLDM is advantageous in both generation quality and computational efficiency. Trained on AudioCaps with a single GPU, AudioLDM achieves state-of-the-art TTA performance measured by both objective and subjective metrics (e.g., frechet distance). Moreover, AudioLDM is the first TTA system that enables various text-guided audio manipulations (e.g., style transfer) in a zero-shot fashion.  * https://github.com/haoheliu/AudioLDM
  
* http://www.soundfonts.gonet.biz
+
== Video ==
 +
See also [[Video]]
  
* [http://www.emu-france.com/emulateurs/311-musiques-et-sons/313-musiques-et-sons-section-midi/4230-soundfont-fluidr3-gm/ Fluid R3]
+
* [http://xjadeo.sourceforge.net/ 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.
  
* [https://web.archive.org/web/20030823015009/http://www.titanicsf.com 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.
 
  
* [http://virtualplaying.com/virtual-playing-orchestra/ 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.
+
* https://news.ycombinator.com/item?id=12041792
  
* [http://www.synthfont.com/soundfonts.html Some GM SoundFonts and the Sonatina Symphonic Orchestra package]
 
  
* [http://sso.mattiaswestlund.net/ 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.
+
* http://www.365dagenkunst.nl/2011/youtube-sequencer/
** archive.org: [https://archive.org/details/SonatinaSymphonicOrchestraSF2 Sonatina Symphonic Orchestra SF2]
 
* [http://www.personalcopy.com/home.htm PersonalCopy soundfonts]
 
  
* [http://vis.versilstudios.net/vsco-community.html VS Chamber Orchestra: Community Edition]
+
== Gaze ==
** https://github.com/sgossner/VSCO-2-CE
 
  
* [https://linuxmusicians.com/viewtopic.php?f=50&t=16618  No Budget Orchestra (NBO)] - version 2
 
  
 +
* http://theeyeharp.org
 +
** https://www.upf.edu/web/mtg/the-eyeharp
 +
** https://github.com/zackbam/TheEyeHarp
 +
** YouTube: [https://www.youtube.com/watch?v=4W7fkqbkXzE Yesterday, the Beatles. EyeHarp Cover]
  
* [http://www.orchardoo.com/newsfonts01.htm 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.
+
== AR / VR ==
 +
See also [[Spatial audio]]
  
* [http://www.purgatorycreek.com/styled/page1.html 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
+
* https://github.com/bDunph/ImmersAV - an open source toolkit for immersive audiovisual composition. It was built around a focused approach to composition based on generative audio, raymarching and interactive machine learning techniques.
  
* http://www.bandshed.net/sounds/sfz/
 
  
* http://www.karoryfer.com/karoryfer-samples
+
* [https://www.etc.cmu.edu/projects/mixthesia/ Mixthesia] - an exploratory project focused on discovering intuitive interactions in VR that introduce novice musicians to sound mixing tools and concepts. Sound mixing is an arcane craft performed in closed-off rooms for extended periods of time through a complex interface. By prototyping different visualizations and interactions, the project aims to demystify the craft of sound mixing by avoiding the complex traditional interface.
  
 +
== Performance ==
  
* [https://smmdrums.wordpress.com/category/sfz/ SM Drums]
+
* [https://ponderworthy.github.io/the-box-of-no-return/ The Box of No Return] - a Linux-based musical synthesizer platform, suitable for live musicianship, designed to handle multiple patches with enormous demands, and switch between them with zero delay and zero cutout.  If you sit in your home studio and use single SoundFonts with a laptop and simple GUI, you don't need this.  If you play live, and pile on the tone generators and filters in patch development in order to feel and deliver the unyielding power of the musical harmonic roar, a full implementation of the BNR may suit you well.  There are obviously middle grounds too ☺, and there are articles here to help in general.
 +
** https://github.com/ponderworthy/the-box-of-no-return
  
* [http://gumpaudiosamples.com/ 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
 
  
* http://download.linuxaudio.org/musical-instrument-libraries/sfz
+
* https://github.com/EliasKesh/LiveMusicApp - GTK Application to configure and control music software for live performances
** http://download.linuxaudio.org/musical-instrument-libraries/sfz/the_open_source_drumkit.tar.7z - with sfz mapping
 
  
* [https://rytmenpinne.wordpress.com/sounds-and-such/salamander-drumkit/ Salamander drumkit]
+
== Games ==
** https://archive.org/details/SalamanderDrumkit
+
* [http://fractgame.com/ FRACT] - a musical exploration game. You arrive in a forgotten place and explore the unfamiliar landscape to discover the secrets of an abandoned world that was once built on sound. As you start to make sense of this strange new environment, you work to rebuild its machinery by solving puzzles and bring the world back to life by shaping sound and creating music in the game.
** https://github.com/endolith/Salamander-Drumkit
 
  
* [https://www.analoguedrums.com/details-bm.php Big Mono] - drums, 254 sample .wav files, maps for Kontakt, Battery and EXS24
 
  
* [http://www.wavesfactory.com/drumcircle.php DrumCircle] is a sample library for Kontakt that features 2 (free edition) drummers
+
* https://sunebear.github.io/Piano-Flow - A music game follows the piano flows.
 +
** https://github.com/SuneBear/Piano-Flow
  
* http://www.pettinhouse.com/html/download.html
+
== DOS ==
 +
* http://www.vgmpf.com/Wiki/index.php?title=Category:Editors
  
 +
== macOS ==
 +
* http://www.macmusic.org/home/?lang=en
  
* http://www.thecontrolcentre.com/samples.htm
+
* [http://arvidtp.net/guidex.php Arvid Tomayko's Guide To Free Mac Music Software]
 
 
* http://www.michaelkingston.fi/kingstondrums/files.html
 
 
 
* https://www.orangetreesamples.com/blog/free-jazz-funk-drum-sample-library
 
** http://www.drealm.info/sfz/GregJazz/ - sfz mapping
 
 
 
* [http://voxxlab.org/page.php?menu=&id=79&category=94 L2S (Learn To Share) Project] - samples of acoustic drums and cymbals, recorded with sticks and brushes.
 
 
 
* [http://rekkerd.org/nsa-custom-series-drumkit-free-acoustic-drumkit-samples-by-dean-aka-nekro/ NSA Custom Series Drumkit]
 
 
 
* [http://www.pettinhouse.com/html/vke.html Vinyl Drumkits - Electronic]
 
 
 
* http://acousticsamples.net/bundles/as-free-collection
 
 
 
* http://www.bulldawgsound.com/drums/sample_lib.html
 
 
 
* https://www.dropbox.com/s/w4pkmotjr4rbohq/Erkan_sorted_drum_samples.rar?dl=0
 
 
 
* http://www.bluenoiseplugins.com/plugins/drummix/beta-edition/
 
 
 
* http://www.wilkinsonaudio.com/?option=com_content&view=category&layout=blog&id=8&Itemid=10
 
 
 
* https://www.gearslutz.com/board/music-computers/615075-some-free-snare-samples-ya.html
 
 
 
* http://drbeat.ru/index.php/original-free-drum-kits/264-acoustic-personal-drum-kit
 
 
 
* [http://www.kara-moon.com/index.php?modid=mod02&l_submenu_id=m001_02_02 Kara-Moon free samples]
 
 
 
* http://www.samgreene.com/sams-sonor-samples - exs24
 
 
 
* https://www.gearslutz.com/board/geekslutz-forum/111605-free-hq-snare-kick-samples-w-gog-files.html
 
 
 
* http://www.drumsamples.ca/ - login required for downloads
 
 
 
* [https://linuxmusicians.com/viewtopic.php?f=50&t=16318 themetalkickdrum]
 
 
 
* http://el-kay.com/soundfont/sf-library.htm - sfark
 
 
 
 
 
* [https://linuxaudiostudio.wordpress.com/2012/06/15/new-balafon-soundfont/ Balafon soundfont]
 
 
 
* http://soundfonts.narod.ru/ - sf2, russian
 
 
 
* [http://theremin.music.uiowa.edu/MIS.html University of Iowa - Musical Instrument Samples] - browse via menu for downloads/ probably quickest to use a commandline program like wget to download
 
 
 
== Spatial audio ==
 
* https://en.wikipedia.org/wiki/Panning_(audio)
 
 
 
 
 
* https://en.wikipedia.org/wiki/Spatial_music
 
 
 
 
 
* https://en.wikipedia.org/wiki/Sound_localization
 
 
 
 
 
* https://en.wikipedia.org/wiki/3D_audio_effect
 
 
 
=== 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/Category:Stereophonic_sound
 
 
 
* 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://www.youtube.com/watch?v=aZnb6pqTnP8 left right speaker test - 10 hours] - "You've got 10 hours to figure this out. YOU CAN DO THIS!"
 
 
 
 
 
* 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 [https://news.ycombinator.com/item?id=8818870] 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".
 
 
 
* https://github.com/dack/leslie - A leslie audio effect with jack, OSC control, and (optionally) an opengl GUI.
 
 
 
 
 
* [http://kokkinizita.linuxaudio.org/linuxaudio/zita-bls1-doc/quickguide.html 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.
 
 
 
 
 
* [https://whiteelephantaudio.com/plugins/monstr/ 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://github.com/jd-13/MONSTR-Stereo-Imaging/
 
 
 
 
 
* 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.
 
 
 
* [http://www.alexhilton.net/A1AUDIO/index.php/a1stereocontrol 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 ===
 
* https://en.wikipedia.org/wiki/Quadraphonic_sound
 
 
 
=== Surround sound ===
 
* https://en.wikipedia.org/wiki/Surround_sound
 
 
 
* [http://hajo.me/blog/2014/12/28/how-surround-sound-for-headphones-works/ How Surround Sound for Headphones Works] [https://news.ycombinator.com/item?id=8819120]
 
 
 
 
 
* http://acousmodules.free.fr/spatialmass.htm
 
 
 
 
 
* 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 ===
 
* https://en.wikipedia.org/wiki/Ambiophonics
 
 
 
* http://www.ambiophonics.org/
 
 
 
=== 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.
 
 
 
* http://www.soundonsound.com/sos/oct01/articles/surroundsound3.asp
 
 
 
 
 
* https://wiki.xiph.org/Ambisonics
 
 
 
* YouTube: [https://www.youtube.com/watch?v=C0xRAf9-XeU Ambisonics - What is it?]
 
 
 
 
 
 
 
 
 
* http://non.tuxfamily.org/wiki/Ambisonics
 
 
 
* http://non.tuxfamily.org/wiki/AmbisonicsReverb
 
 
 
* https://en.wikipedia.org/wiki/Head-related_transfer_function
 
 
 
 
 
* http://www.sonicarchitecture.de/pdf/AmbiTutorial_en.pdf
 
 
 
* https://web.archive.org/web/20160306015704/http://mymbs.mobeard.org/~paul.fisher/fov2-0010016c/fov2-0010016e/fov2-001001a3/chapters/24furse/index.html
 
 
 
* [http://lac.linuxaudio.org/2014/video.php?id=85&h=720 Workshop on blue-environment for higher order Ambisonic spatialisation and spatial granular synthesis in Csound] - Linux Audio Conference 2014, Jan Jacob Hofmann
 
 
 
 
 
 
 
* https://en.wikipedia.org/wiki/List_of_Ambisonic_Software
 
* http://blends.debian.org/multimedia/tasks/ambisonics
 
 
 
* http://www.ambisonic.net/
 
 
 
* https://ambisonic.info/index.html
 
 
 
* http://spatium.ruipenha.pt/
 
 
 
* [http://www.matthiaskronlachner.com/?p=2015 ambiX] - Ambisonic plug-in suite, VST/LV2 plug-ins or standalone application under Windows, Mac OSX and Linux.
 
** https://github.com/kronihias/ambix
 
 
 
* [http://www.matthiaskronlachner.com/?p=1910 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®)
 
** https://github.com/kronihias/mcfx
 
 
 
 
 
* http://www.sekisushai.net/ambitools/
 
 
 
* http://www.ambisonictoolkit.net/
 
 
 
* http://www.blueripplesound.com/b-format
 
 
 
* http://people.bath.ac.uk/masrwd/bformat.html
 
 
 
* http://www.core-sound.com/TetraMic/1.php
 
 
 
* http://kokkinizita.linuxaudio.org/ambisonics/index.html
 
 
 
 
 
* https://github.com/kronihias/ambix
 
 
 
 
 
* 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.
 
 
 
 
 
* http://wiki.linuxaudio.org/apps/all/ambdec
 
 
 
 
 
* https://github.com/nicobou/satie
 
 
 
 
 
* https://www.york.ac.uk/inst/mustech/3d_audio/csambi.htm
 
 
 
 
 
* http://legacy.spa.aalto.fi/research/cat/vbap/
 
 
 
* http://harpex.net/download.html
 
 
 
=== Wave field synthesis ===
 
* https://en.wikipedia.org/wiki/Wave_field_synthesis
 
 
 
 
 
* http://sciencebulletin.org/archives/6482.html [https://news.ycombinator.com/item?id=12730748]
 
 
 
== Processing tools ==
 
* http://www.smartelectronix.com/~jaha/
 
 
 
 
 
=== python-mix ===
 
* https://github.com/j3ffhubb/python-mix - CLI audio file mixer using python-wavefile and numpy. Warning: Alpha-grade, under-tested code, use at your own risk
 
 
 
=== SoX ===
 
* [http://sox.sourceforge.net/ 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.
 
** http://en.wikipedia.org/wiki/SoX
 
 
 
play --show-progress -c 2 --null synth brownnoise reverb bass 6 treble -3 echos 0.8 0.9 1000 0.3 1800 0.25 [https://news.ycombinator.com/item?id=5872414]
 
 
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 [http://www.reddit.com/r/linux/comments/n8a2k/commandline_star_trek_engine_noise_comment_from/]
 
 
 
* http://www.reddit.com/r/scifi/comments/n7q5x/want_to_pretend_you_are_aboard_the_enterprise_for/c36xkjx
 
 
 
 
 
* [https://code.google.com/archive/p/sonfilade/ 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 ===
 
* [http://pydub.com/ pyDub] - Manipulate audio with an simple and easy high level interface [https://news.ycombinator.com/item?id=8445908]
 
** https://github.com/jiaaro/pydub/
 
 
 
=== Composers Desktop Project ===
 
* http://www.composersdesktop.com/
 
** http://www.composersdesktop.com/cdpsystemTechnical.html
 
 
 
* http://www.unstablesound.net/
 
 
 
* https://en.wikipedia.org/wiki/Composers_Desktop_Project
 
 
 
 
 
* http://www.ensemble-software.net/cdp.html
 
** http://www.ensemble-software.net/cdpother.html
 
 
 
* YouTube: [https://www.youtube.com/watch?v=XOSvdBWfU0I Trevor Wishart - Imago]
 
* YouTube: [http://www.youtube.com/watch?v=x-Or7VaMlEI Trevor Wishart - Tongues of Fire]
 
 
 
 
 
* http://createdigitalmusic.com/2014/05/watch-bt-reveal-sound-design-tricks-free-geeky-cdp-learn/
 
 
 
* http://www.renoise.com/tools/cdp-interface
 
** http://createdigitalmusic.com/2014/05/renoise-community-already-tool-cdp-free-easy-sound-mangling-results/
 
 
 
* https://xenakios.wordpress.com/2014/07/16/cdp-frontend-reaper-extension-plugin/
 
 
 
 
 
* [http://www.trevorwishart.co.uk/slfull.html 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 ===
 
* [http://www.notam02.no/web/2005/10/mammut-2/?lang=en 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 ===
 
* http://www.sciss.de/fscape/
 
** https://github.com/Sciss/FScape
 
 
 
* https://vimeo.com/26509124
 
 
 
=== FreqTweak ===
 
* [http://freqtweak.sourceforge.net/ 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 ===
 
* [http://taps.cs.princeton.edu/ 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
 
 
 
* http://wiki.cs.princeton.edu/index.php/Taps
 
 
 
* YouTube: [https://www.youtube.com/watch?v=cBGcLXL6Cng Tapestrea demo]
 
 
 
Build fails on Linux. Fixing two or three indirect includes gets further, but fails on building it's included [old] chuck.
 
 
 
=== SPEAR ===
 
* [http://www.klingbeil.com/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 ===
 
* [http://www.music.columbia.edu/~stanko/About_Ceres3.html 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.
 
 
 
* http://www.music.columbia.edu/~stanko/Ceres3_help-old.html
 
 
 
* https://github.com/jeremysalwen/Ceres4 - build fails with linked use of depreciated OSS code
 
 
 
* https://github.com/jeremysalwen/Ceres4
 
 
 
=== ATS ===
 
* [https://dxarts.washington.edu/technology/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.
 
 
 
* [https://ccrma.stanford.edu/~juan/ATS.html 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.
 
 
 
 
 
* https://github.com/jamezilla/ats
 
 
 
Only takes mono .wav files
 
 
 
=== Cecilia ===
 
* [http://ajaxsoundstudio.com/software/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.
 
** https://github.com/belangeo/cecilia5
 
 
 
* YouTube: [https://www.youtube.com/watch?v=g56COygk8ZA Tutorial: Working with Cecilia and Audio]
 
 
 
=== Loris ===
 
* [http://www.cerlsoundgroup.org/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 ===
 
* [https://www.upf.edu/web/mtg/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.
 
** https://github.com/MTG/sms-tools
 
 
 
=== FxEngine ===
 
* [https://sourceforge.net/projects/smprocess/ 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.
 
 
 
* [https://sourceforge.net/projects/fxjackpack/ FxJackPack] - contains two plugins for the FxEngine framework which enables the recording and playback sound through JACK (Jack Audio Connection Kit).
 
 
 
=== NASPRO ===
 
* [http://naspro.sourceforge.net/libraries.html NASPRO] - acronym for "NASPRO Architecture for Sound PROcessing" is a collection of free and open source sound processing software built around the LV2 plugin standard.
 
** https://sourceforge.net/projects/naspro
 
 
 
=== Aglaophone ===
 
* http://pe2bz.philpem.me.uk/ElectronicPrograms/-%20ELF-Programs/AglaPhone-Linux/Index
 
 
 
=== SpectMorph ===
 
* [http://www.spectmorph.org/ 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 ===
 
* [https://www.dynamictonality.com/spectools.htm 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 ===
 
$
 
 
 
* YouTube: [https://www.youtube.com/watch?v=jFCjv4_jqAY Melodyne - Direct Note Access]
 
 
 
=== Time/pitch ===
 
==== Paul's Extreme Sound Stretch ====
 
* [http://hypermammut.sourceforge.net/paulstretch/ Paul's Extreme Sound Stretch]
 
** http://www.paulnasca.com/algorithms-created-by-me
 
** http://www.microscopics.co.uk/blog/2010/paulstretch-an-interview-with-paul-nasca/
 
 
 
==== tcStrech ====
 
* [https://tonecarver.wordpress.com/tcstretch/tcStretch 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 ====
 
* [http://www.breakfastquay.com/rubberband/ 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 ====
 
* [https://29a.ch/playitslowly 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 ====
 
* [http://www.teuton.org/~gabriel/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 ====
 
* [https://sourceforge.net/projects/ptplayer/ 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 ====
 
* [http://sbsms.sourceforge.net/ SBSMS] - Subband Sinusoidal Modeling Synthesis
 
** https://sourceforge.net/projects/sbsms/
 
 
 
==== SoundTouch ====
 
* [http://www.surina.net/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/soundtouch~.html
 
 
 
http://www.katjaas.nl/pitchshift/pitchshift.html
 
 
 
=== Neural network ===
 
* https://github.com/iver56/cross-adaptive-audio
 
* http://crossadaptive.hf.ntnu.no/index.php/2016/06/27/evolving-neural-networks-for-cross-adaptive-audio-effects/
 
 
 
== Editing ==
 
=== Audacity ===
 
* [http://audacity.sourceforge.net/ 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.
 
** http://en.wikipedia.org/wiki/Audacity_(audio_editor)
 
 
 
=== mhWaveEdit ===
 
* [https://gna.org/projects/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 ===
 
* [http://www.metadecks.org/software/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 ===
 
* [http://rezound.sourceforge.net/ ReZound] aims to be a stable, open source, and graphical audio file editor primarily for but not limited to the Linux operating system.
 
 
 
=== ocenaudio ===
 
* [http://www.ocenaudio.com.br/ 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 ===
 
* [http://sourceforge.net/projects/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.
 
** https://en.wikipedia.org/wiki/WaveSurfer
 
 
 
=== soniK ===
 
* [http://sonik.sourceforge.net/ 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 ===
 
* [http://semiletov.org/eko EKO] - a simple sound editor.
 
** https://github.com/psemiletov/eko
 
 
 
=== Gnome Wave Cleaner ===
 
* [http://gwc.sourceforge.net/ Gnome Wave Cleaner] - mainly to remove clicks from recorded vinyl
 
 
 
=== wavbreaker ===
 
* [http://wavbreaker.sourceforge.net/ 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 ===
 
* [http://isse.sourceforge.net/ ISSE] - An Interactive Source Separation Editor
 
** YouTube: [https://www.youtube.com/watch?v=Rd3prIkO5bg ISSE: An Interactive Source Separation Editor (Thesis Demo)]
 
 
 
=== LAoE ===
 
* [http://www.oli4.ch/laoe/home.html 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 ===
 
* [https://ccrma.stanford.edu/software/snd/snd/snd.html 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.
 
 
 
* https://github.com/kmatheussen/snd-rt
 
 
 
* [http://users.notam02.no/~kjetism/sandysth/ 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 ===
 
* [http://www.gnu.org/software/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 ===
 
* [http://marlin.sourceforge.net/ Marlin] - A GNOME Sample Editor. last updated 03-08-2004
 
 
 
=== Gnoise ===
 
* [http://gnoise.sourceforge.net/ 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 ==
 
 
 
* https://www.dsprelated.com/freebooks/filters
 
 
 
* [https://web.archive.org/web/20151009110702/http://dspwiki.com/index.php?title=Main_Page Digital Signal Processing (DSP) and Synthesis Wiki]
 
 
 
=== Equalisation / mastering ===
 
 
 
* [https://web.archive.org/web/20161105202833/http://thedigitalmachine.net/alsaequal.html 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.
 
** http://doc.slitaz.org/en:guides:alsaequal
 
 
 
* [http://djcj.org/jackeq 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.
 
 
 
* [http://teragonaudio.com/NotNotchFilter.html 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.
 
** https://github.com/teragonaudio/NotNotchFilter
 
 
 
* [http://teragonaudio.com/HiLoFilter.html 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.
 
** https://github.com/teragonaudio/HiLoFilter
 
 
 
* https://delamanchavst.wordpress.com/2013/10/24/fr33some - fr33some is a 3-band, stereo splitter. You can use it to define 3 frequency ranges for low, mid and high frequencies, and output each band to a different stereo output, for individual processing. Windows VST.
 
 
 
* [http://x42-plugins.com/x42/x42-eq 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.
 
** https://github.com/x42/fil4.lv2
 
 
 
* [http://nedko.arnaudov.name/soft/lv2fil/ Lv2fil] - Stereo and mono LV2 plugins, four-band parametric equalisers
 
 
 
 
 
* [http://eq10q.sourceforge.net/?page_id=96 EQ10Q] - an audio plugin bundle over the LV2 standard (http://lv2plug.in) implementing a powerful and flexible parametric equalizer and more (gate)
 
 
 
 
 
* https://www.meldaproduction.com/MEqualizer - Win VST
 
 
 
 
 
* [http://www.xowave.com/ 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.
 
 
 
* [http://jamin.sourceforge.net/ 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)
 
** YouTube: [https://www.youtube.com/watch?v=J-GSKglsDkg 140_groove + jammin] - audio routed through "Jammin".
 
 
 
* https://vladgsound.wordpress.com/plugins/limiter6 - modular effect designed to limit dynamic range and to suppress peaks instereo and mono audio signals. Windows VST, macOS VST/AU.
 
 
 
* [http://cdrdao.sourceforge.net/gcdmaster/index.html GCDMASTER] - Easy and Powerful CD Mastering
 
 
 
=== Compression / limiting ===
 
* https://en.wikipedia.org/wiki/Dynamic_range_compression
 
 
 
 
 
==== VLevel ====
 
* [https://github.com/radiocicletta/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 ====
 
* [http://kokkinizita.linuxaudio.org/linuxaudio/zita-dpl1-doc/quickguide.html 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/$
 
** https://github.com/kmatheussen/radium_compressor
 
 
 
==== Visual Compressor ====
 
* http://www.joebutton.co.uk/blog/new-visual-compressor/ - LV2 plugin
 
 
 
==== Molot Lite ====
 
* https://sourceforge.net/projects/molot/ LV2 and LADSPA versions of the Molot Lite compressor. "Molot Lite" is cut-down version of Molot compressor 0.3.
 
** https://vladgsound.wordpress.com/plugins/molot/
 
 
 
==== Xhip Compressor ====
 
* [http://xhip.net/effects/?p=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 ====
 
* [http://xhip.net/effects/?p=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 ====
 
* [https://vladgsound.wordpress.com/plugins/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 ====
 
* [https://delamanchavst.wordpress.com/2013/10/31/gta-compressor-now-available-to-download/ 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 ====
 
* [https://www.audiodamage.com/pages/free-downloads 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 ====
 
* https://www.meldaproduction.com/MLimiter
 
 
 
==== W1 Limiter ====
 
* [http://www.yohng.com/software/w1limit.html W1 Limiter] - a clone of Waves L1, with identical output, as well as an approximation of Waves L2.
 
 
 
==== VeeMax ====
 
* http://www.g200kg.com/jp/software/veemax.html
 
 
 
=== Gate ===
 
* [http://abgate.sourceforge.net/ 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.
 
 
 
* [http://xhip.net/effects/?p=Gate 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.
 
 
 
 
 
* [http://eq10q.sourceforge.net/?page_id=96 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.
 
 
 
 
 
* https://github.com/rghvdberg/gator - Developing a programmable gate plugin using DPF
 
 
 
 
 
==== Windows/Mac ====
 
* [https://delamanchavst.wordpress.com/2013/10/24/moot/ 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.
 
 
 
* [https://delamanchavst.wordpress.com/2013/10/23/gator/ 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
 
 
 
* [http://www.araldfx.com/sg1/ 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.
 
 
 
 
 
* [http://www.alexhilton.net/A1AUDIO/index.php/a1triggergate 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 ===
 
* [http://www.profwubaudio.com/multiverb.html Multiverb] is an audio plug-in that produces a reverb effect on a monaural or stereo audio track. It is available as both a VST plug-in for Windows (Win32 and Win64) and an LV2 plug-in for Linux. Multiverb implements an acoustic system that is an interconnection of multi-port acoustic elements. For a full technical description of the Multiverb algorithm please see my paper in the Journal of Multidisciplinary Engineering Science and Technology (JMEST).
 
** https://github.com/professorwub/MultiverbLV2 - doesn't build? lv2-plugin
 
* https://ccrma.stanford.edu/~jos/pasp/Freeverb.html
 
** http://www.nongnu.org/freeverb3/
 
** http://git.savannah.gnu.org/cgit/freeverb3.git
 
** http://www.vst4free.com/free_vst.php?id=2034  win 32/64
 
 
 
* https://github.com/michaelwillis/dragonfly-reverb - A hall-style reverb based on freeverb3 algorithms
 
 
 
 
 
* [https://github.com/martineastwood/mverb 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.
 
** https://github.com/DISTRHO/MVerb - a DPF'ied build of MVerb, allowing a proper Linux version with UI. LADSPA, DSSI, LV2 and VST plugin versions can be built, plus a JACK-Standalone.
 
** https://sourceforge.net/projects/mverb/ - lv2 fork
 
 
 
* [http://kokkinizita.linuxaudio.org/linuxaudio/zita-rev1-doc/quickguide.html 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.
 
** https://sourceforge.net/projects/zitzreverb/ - forkish?
 
 
 
* [http://www.vst4free.com/free_vst.php?id=584 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.
 
 
 
* [https://www.u-he.com/cms/protoverb 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.
 
 
 
* [http://xhip.net/effects/?p=Reverb Xhip Reverb] - A reverb effect designed to avoid an ultra-smooth fade-to-noise decay.
 
 
 
 
 
* [http://www.balancemastering.com/blog/balance-audio-tools-free-teufelsberg-reverb-plugin/ Teufelsberg Reverb] - Put the sound of cold war surveillance into your music. Convolution.
 
 
 
See also [[#Convolution]]
 
 
 
=== Delay ===
 
* [http://gersic.com/tom-pong/ 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.
 
 
 
* [https://github.com/WolfSound/MidSide MidSide] - MS Delay/Mixer VST plug-in. It can be use for widening effects of an input stereo signal.
 
 
 
* [https://musicalentropy.github.io/Spaceship-Delay/ Spaceship Delay] is a delay audio effect featuring classic modern and vintage sounding delays
 
** https://www.kvraudio.com/kvr-developer-challenge/2016/#dc16-12755 - Windows/Mac only
 
 
 
* https://github.com/x42/floaty
 
 
 
* [http://xhip.net/effects/?p=mDelay 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.
 
 
 
 
 
* [https://ineardisplay.com/plugins/legacy/ BOWECHO] - Quad Modular Delay. Use the key R7P1R64720175164548606433 to unlock the demo version. OS X, Windows and Linux.
 
 
 
 
 
* https://www.fullbucket.de/music/fbdelay.html - windows vst
 
 
 
* http://software.neuenberger.de/tigerdelay
 
 
 
* [https://www.youtube.com/watch?v=fevFnF9BMhE Classic Delay by Kjaerhus Audio]
 
 
 
* https://delamanchavst.wordpress.com/2013/10/27/combover-comes-back-from-the-archives/
 
 
 
==== Tapiir ====
 
* [http://www.resorama.com/maarten/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.
 
 
 
* [http://mtg.upf.edu/node/239 tapiir]
 
** http://ccrma.stanford.edu/planetccrma/man/man1/tapiir.1.html
 
 
 
* http://ccrma.stanford.edu/planetccrma/software/soundapps.html#SECTION000624600000000000000
 
 
 
=== Tremolo ===
 
* https://en.wikipedia.org/wiki/Tremolo
 
 
 
* [https://whiteelephantaudio.com/plugins/richter-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.
 
** https://github.com/jd-13/Richter-Tremolo
 
 
 
 
 
* https://github.com/dsheeler/tremelo.lv2 - an audio-plugin in LV2 format that modulates the amplitude of the input signal. The modulation is sinusoidal with adjustable amplitude and frequency.
 
 
 
* https://github.com/jeremysalwen/Stutter-LV2 - This is a simple plugin for creating a "stuttering" effect for your audio. It is in the LV2 format.
 
 
 
 
 
* https://www.meldaproduction.com/MTremolo - VST, VST3, AU and AAX interfaces on Windows & Mac, both 32-bit and 64-bit
 
 
 
* [http://xhip.net/effects/?p=Tremolo 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 ===
 
* [http://xhip.net/effects/?p=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.
 
 
 
 
 
* [http://xhip.net/effects/?p=Vocal 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.
 
 
 
 
 
 
 
* [http://rekkerd.org/dtblkfx 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.
 
 
 
 
 
* [https://delamanchavst.wordpress.com/2013/10/23/sfilter 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
 
 
 
* [https://delamanchavst.wordpress.com/2013/10/23/pfilter 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
 
 
 
 
 
* [https://delamanchavst.wordpress.com/2013/10/18/sumo 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 ====
 
* [https://sites.google.com/site/youwashockvst/ You Wa Shock !] - VST/Winamp effect to brighten up and maximize any truck you hand it.
 
 
 
=== Chorus ===
 
* https://github.com/grejppi/tfchorus - LV2 and LADSPA ports of TF Chorus
 
 
 
=== Flanger ===
 
* https://www.meldaproduction.com/MFlanger
 
 
 
=== 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.
 
 
 
* [https://delamanchavst.wordpress.com/2013/10/23/ring-thing/ 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 ===
 
* http://www.tokyodawn.net/proximity/
 
 
 
* 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/MWaveFolder - an analog-inspired distortion module with a unique character ranging from mild harmonic enhancement to complete sound destruction.
 
 
 
* 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;
 
* http://quitte.de/dsp/preamp.html
 
* http://quitte.de/dsp/unmatched.html
 
* http://quitte.de/dsp/spiced-12AX7.html
 
 
 
* [http://klanghelm.com/contents/products/SDRR/SDRR.php 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.
 
 
 
* [http://klanghelm.com/contents/products/IVGI/IVGI.php 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 ===
 
* [http://dis-dot-dat.net/index.cgi?item=/code/arcangel/ 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
 
 
 
* https://github.com/moddevices/gx_vobtb.lv2 - Fuzz Tonebender plugin
 
 
 
* [https://objectivewave.wordpress.com/deteriorate-lv2/ 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
 
** YouTube: [https://www.youtube.com/watch?v=C63m5FdlzX0 deteriorate-lv2 - demo]
 
 
 
* [https://github.com/smoge/ArchAudio/blob/master/preview/lv2-deathcrush/PKGBUILD Deathcrush] is a distorsion plugin, made up of some raw effects (such as bitcrusher and compressor) to really ruin your gentle sounds.
 
 
 
* https://github.com/x42/bitfilter.lv2
 
 
 
* https://github.com/grejppi/bitrot - A set of LV2 and LADSPA plugins for glitch effects
 
 
 
 
 
* http://www.alexs.org/ladspa
 
 
 
 
 
* [https://whiteelephantaudio.com/plugins/carve/ 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
 
** https://github.com/jd-13/Carve-Distortion
 
 
 
 
 
* [https://ineardisplay.com/plugins/legacy/ 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.
 
 
 
* [http://www.audiodamage.com/pages/free-downloads FuzzPlus3] - vintage fuzz pedal model, plus a new filter, self-feedback, and a modern procedural user interface. Windows/Mac
 
 
 
* [https://delamanchavst.wordpress.com/2013/10/24/thrummaschine/ 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
 
 
 
* [https://delamanchavst.wordpress.com/2013/10/23/imperfection 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
 
 
 
* [https://delamanchavst.wordpress.com/2013/10/23/bent 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
 
 
 
* [https://delamanchavst.wordpress.com/2013/10/23/freq-show - freq show] - screws around with your audio and ouputs an unholy version of whatever you fed it
 
 
 
* [http://www.gvst.co.uk/gclip.htm 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.
 
 
 
* http://www.g200kg.com/jp/software/mykazoo.html
 
 
 
=== Frequency shifting ===
 
* [https://www.fullbucket.de/music/freqshifter.html 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 ===
 
* [http://tombaran.info/autotalent.html 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.
 
 
 
* [https://github.com/jeremysalwen/TalentedHack talentledhack] - an LV2 port of Tom Baran's Autotalent, with added features and improved performance.
 
 
 
* [http://kokkinizita.linuxaudio.org/linuxaudio/zita-at1-doc/quickguide.html 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.
 
 
 
* https://sourceforge.net/projects/zitaretuner/ - 'fork' of above
 
** http://linux-audio.4202.n7.nabble.com/zitaretuner-td93567.html
 
 
 
* [http://x42-plugins.com/x42/x42-autotune 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.
 
** https://github.com/x42/fat1.lv2
 
 
 
* https://github.com/jean-emmanuel/zita-at1-plagiat
 
 
 
* [http://tal-software.com/products/tal-vocoder 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.
 
 
 
* [http://www.sirlab.de/linux/download_vocoder_standalone_jack.html vocoder] (JACK standalone). It's a complete rewrite of the old vocoder, now done in C++ using FLTK.
 
 
 
 
 
* [http://hyperglitch.com/dev/VocProc VocProc] - an LV2 plugin for pitch shifting (with or without formant correction), vocoding, automatic pitch correction and harmonizing of singing voice.
 
 
 
* [https://github.com/moddevices/mod-pitchshifter mod-pitchshifter] - Pitch Shifter lv2 effects
 
 
 
* https://gna.org/projects/lv2vocoder
 
 
 
 
 
* https://www.meldaproduction.com/MAutoPitch
 
 
 
 
 
* http://www.g200kg.com/jp/software/kerovee.html
 
 
 
* http://www.g200kg.com/jp/software/rovee.html
 
 
 
* http://www.g200kg.com/jp/software/vocovee.html
 
 
 
* http://www.g200kg.com/jp/software/vocov.html
 
 
 
 
 
* https://delamanchavst.wordpress.com/2014/06/20/unstable-pitch-modulation-vst-is-released-for-free/
 
 
 
 
 
* [http://vicanek.de/audioprocessing/lavozcantante.htm 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 ===
 
* [http://vicanek.de/audioprocessing/midichoir.htm 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 ===
 
* https://en.wikipedia.org/wiki/Phase_vocoder
 
 
 
* [http://www.cs.princeton.edu/courses/archive/spr99/cs325/koonce.html#INRODUCTION 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.
 
 
 
* [http://waon.sourceforge.net/pv.html 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)
 
 
 
* [http://quitte.de/dsp/pvoc.html 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 ===
 
* https://github.com/lucianodato/noise-repellent - An lv2 spectral noise reduction plugin.
 
 
 
=== 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.
 
 
 
 
 
* http://www.soundonsound.com/techniques/convolution-processing-impulse-responses
 
 
 
 
 
* https://en.wikipedia.org/wiki/Frequency_response
 
 
 
 
 
* 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.
 
 
 
 
 
* https://en.wikipedia.org/wiki/Finite_impulse_response
 
 
 
* [https://www.youtube.com/watch?v=i770M9pM0_k Pete Thorn- Recording Guitar With Load Boxes and Impulse Responses]
 
 
 
 
 
* [http://www.newyorker.com/magazine/2015/02/23/wizards-sound Wizards of Sound] -  Retouching acoustics, from the restaurant to the concert hall. [https://news.ycombinator.com/item?id=9057264]
 
 
 
 
 
 
 
* http://www.mega-nerd.com/libsndfile/tools/#generate-chirp
 
 
 
* https://en.wikipedia.org/wiki/Chirp#Relation_to_an_impulse_signal
 
 
 
 
 
* [http://gaydenko.com/qloud/ QLoud] - tool to measure loudspeaker frequency and step responses and distortions
 
 
 
 
 
* [http://kokkinizita.linuxaudio.org/linuxaudio/ 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.
 
 
 
* [https://sourceforge.net/projects/deconvolv/ deconvolv] -  convolution and deconvolution of WAV files. Supported signal processing functions: correlation, convolution, de-convolution, convolution with Hilbert transformation, de-convolution with Hilbert transformation.
 
 
 
 
 
* [http://eprints.hud.ac.uk/14897/ 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.
 
 
 
* [http://www.katjaas.nl/expochirp/expochirp.html 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.
 
 
 
* [http://drc-fir.sourceforge.net/ 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.
 
 
 
 
 
 
 
* [http://www.roomeqwizard.com 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.
 
 
 
 
 
 
 
* https://en.wikipedia.org/wiki/Convolution_reverb
 
 
 
 
 
* https://github.com/PaulBatchelor/convolute - Convolves two audio files quickly.
 
 
 
* https://github.com/johnflynnjohnflynn/jLibrary - Pure Data
 
 
 
 
 
* [http://www.ludd.luth.se/~torger/brutefir.html 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.
 
 
 
* [https://web.archive.org/web/20140816131028/http://factorial.hu/plugins/lv2/ir 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.
 
** https://github.com/Anchakor/ir.lv2
 
 
 
* https://github.com/HiFi-LoFi/KlangFalter - Convolution audio plugin (e.g. for usage as convolution reverb)
 
 
 
 
 
* [https://sourceforge.net/projects/guitarix/files/specmatch/ 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).
 
 
 
* [http://www.softpedia.com/get/Multimedia/Audio/Audio-Plugins/keFIR.shtml 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.
 
 
 
 
 
* [http://kokkinizita.linuxaudio.org/linuxaudio/ 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/greenm01/jcgui - A little host for jconvolver
 
 
 
* https://sourceforge.net/projects/conviction - Frontend to manage the jack convolution engine jconv.
 
* 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.
 
 
 
 
 
 
 
* http://x42-plugins.com/x42/x42-convolver - Simple zero-latency convolution processor. (Mono, Mono To Stereo and True Stereo(2 in, 2 out, 4chan IR file: L -> L, R -> R, L -> R, R -> L) modes are supported. The main use-case is cabinet-emulation and generic signal processing where latency matters
 
** https://github.com/x42/convoLV2
 
 
 
 
 
* 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.
 
 
 
 
 
* [http://www2.ika.rub.de/HybridReverb2/ 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.
 
 
 
 
 
* [http://www.voxengo.com/product/deconvolver/ 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 $.
 
 
 
 
 
* kvr: [http://www.kvraudio.com/forum/viewtopic.php?t=62458 free Impulse Responses]
 
 
 
* [http://www.openairlib.net/ OpenAir Library] -  Demo, download and share acoustic impulse responses for auralization
 
** http://www.openairlib.net/auralizationdb
 
 
 
* [http://legacy.spa.aalto.fi/projects/poririrs/ Concert Hall Impulse Responses - Pori, Finland]
 
 
 
* [http://www.samplicity.com/download/ Download free impulse responses] - L96 – Medium Hall, T600 – Natural Hall
 
 
 
* http://www.balancemastering.com/blog/balance-audio-tools-free-teufelsberg-reverb-plugin/
 
 
 
* [http://www.echothief.com/ Echothief Impulse Response Library]
 
 
 
* http://www.voxengo.com/impulses/
 
 
 
* https://web.archive.org/web/20160417003424/http://www.echochamber.ch/index.php/tipps-freebies/impulseresponses.html
 
 
 
* http://stash.reaper.fm/tag/Reverb-Impulses
 
 
 
* https://fokkie.home.xs4all.nl/IR.htm
 
 
 
* http://www.grgr.de/IR/
 
 
 
* http://www.ultimatemetal.com/forum/threads/impulse-response-samples.494006/
 
 
 
* https://archive.org/search.php?query=subject%3A%22impulse+response%22
 
 
 
 
 
 
 
* http://www.samplicity.com/bricasti-m7-impulse-responses/
 
 
 
 
 
* http://www.balancemastering.com/blog/
 
 
 
* http://www.balancemastering.com/blog/free-teufelsberg-nsa-listening-tower-impulse-responses-ir-irs-convolution/
 
** https://github.com/johnflynnjohnflynn/BalanceSPTeufelsbergReverb
 
** https://github.com/falkTX/BalanceSPTeufelsbergReverb
 
 
 
* http://www.balancemastering.com/blog/free-funktion-one-impulse-responses-ir-irs-convolution/
 
** https://github.com/johnflynnjohnflynn/BalanceFunktionOne
 
 
 
* http://www.balancemastering.com/blog/free-flipside-soundsystem-impulse-responses/
 
 
 
* https://sourceforge.net/projects/heaven/files/Audio%20Applications/Jack%20Related/jack_convolve/
 
 
 
 
 
 
 
 
 
* https://arunraghavan.net/2016/06/beamforming-in-pulseaudio/ [https://news.ycombinator.com/item?id=12001090]
 
 
 
=== Multi ===
 
* [https://delamanchavst.wordpress.com/2013/10/29/the-original-truc-back-for-download/ 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.
 
 
 
* [https://delamanchavst.wordpress.com/2013/12/05/truc2-modulated-multi-effect-is-now-free/ 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.
 
 
 
 
 
* https://delamanchavst.wordpress.com/2013/10/24/kitchen-sync - Windows VST.
 
 
 
* https://delamanchavst.wordpress.com/2013/10/23/machin - Windows VST.
 
 
 
 
 
* [https://sites.google.com/site/2rulesite/ 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.
 
 
 
* http://maxproject.wixsite.com/maxproject/vsti - Windows/Mac VST.
 
 
 
==== Disto:Fx Free ====
 
* [http://distocore.net/disto_fx.html 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 ====
 
* [http://www.vstzone.sk/index.php#amplio 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 ====
 
* [http://glitchmachines.com/downloads/hysteresis/ Hysteresis] - delay effect with stutter, lowpass filter and modulation effects thrown into the feedback signal path. Process anything from drums and percussion to synth lines and sound effects. On top of being able to create incredibly wild signal glitch mutations, it can also be used to generate classic delay effects.
 
** YouTube: [https://www.youtube.com/watch?v=LpGis8ymnKU Glitchmachines HYSTERESIS - Free Plugin - Overview & Demo]
 
** YouTube: [https://www.youtube.com/watch?v=WQmR9BtYOkg Free VST Effect - Hysteresis]
 
 
 
==== Fracture ====
 
* [http://glitchmachines.com/downloads/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.
 
** YouTube: [https://www.youtube.com/watch?v=czi2XDS5QE0 Glitchmachines FRACTURE - Free Plugin - Overview & Demo]
 
 
 
==== ExEf ====
 
* [http://exef.oec.sk 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 ====
 
* [http://guitarix.org/ guitarix] is a virtual guitar amplifier for Linux running on Jack Audio Connection Kit. It is free as in speech and free as in beer. The available sourcecode allows to build it on other UNIX-like systems, too, namely for BSD and for MacOSX.
 
** https://github.com/brummer10/GxPlugins.lv2
 
** https://sourceforge.net/p/guitarix/wiki/Main_Page/
 
 
 
* https://github.com/snappy46/GuitarixDroid
 
** YouTube: [https://www.youtube.com/watch?v=vXhNS54HCwc GuitarixDroid]
 
 
 
==== Rakarrack ====
 
* [http://rakarrack.sourceforge.net/ 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.
 
** http://rakarrack.sourceforge.net/effects.html
 
** http://soosck.wordpress.com/2011/01/14/rakarrack-open-source-alternative-guitar-rig/
 
** https://github.com/ssj71/rkrlv2
 
** https://github.com/Stazed/rkrlv2
 
 
 
==== GNUitar ====
 
* [http://sourceforge.net/projects/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 ====
 
* [http://gtkgep.prv.pl GTKgep - Guitar Effects Processor]
 
 
 
* [http://cp-gfx.sourceforge.net/ 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.
 
 
 
* [http://sourceforge.net/projects/astylredfx/ RedFX] - FX Processor (for guitar mainly) Effects: Noise Filter, Compressor, Wah, Distortion, Tremolo, Phaser, Flanger-Vibrato, Pitch Shifter, Delay, Reverb, EQ.
 
 
 
* [http://freecode.com/projects/ecamegapedal 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 ===
 
* http://linux-sound.org/plugins.html
 
 
 
 
 
* https://pedalboards.moddevices.com
 
 
 
 
 
* [http://tap-plugins.sourceforge.net/ladspa.html 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.
 
** https://github.com/moddevices/tap-lv2
 
 
 
* [http://quitte.de/dsp/caps.html 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.
 
 
 
* https://tal-software.com/Products
 
 
 
* [http://lsp-plug.in/?page=plugins 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.
 
 
 
* [http://ssj71.github.io/infamousPlugins/plugs.html 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...
 
** https://github.com/ssj71/infamousPlugins
 
 
 
* [http://openavproductions.com/artyfx/ 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.
 
 
 
* [http://calf.sourceforge.net 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!
 
 
 
* https://launchpad.net/invada-studio/
 
 
 
 
 
* [http://mda.smartelectronix.com/ 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
 
** https://sourceforge.net/projects/mda-vst/
 
 
 
* [http://drobilla.net/software/mda-lv2/ 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.
 
 
 
* [http://plugin.org.uk/ladspa-swh/docs/ladspa-swh.html Steve Harris' LADSPA Plugins]
 
** https://github.com/swh/ladspa
 
** https://github.com/swh/lv2/tree/master/plugins - SWH plugins in LV2 format
 
 
 
 
 
* [http://www.semanticaudio.co.uk/download/ 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.
 
 
 
* [https://github.com/falkTX/zam-plugins zam-plugins] - Collection of LV2/LADSPA/VST/JACK audio plugins for high quality processing.
 
** http://www.zamaudio.com/?p=976
 
 
 
* [http://x42-plugins.com/x42/ x42-plugins] - professional audio processing units available as LV2-plugins and JACK-applications
 
 
 
* [http://www.reaper.fm/reaplugs/ 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!
 
 
 
 
 
* [http://distrho.sourceforge.net/plugins DISTRHO Mini Series] - This collection currently includes: 3-Band EQ, 3-Band Splitter, Ping Pong Pan
 
 
 
* [http://flos-audio-plugins.eu/ Flo's Audio Plugins] -  completely free and open source (GPLv3), cross-platform (Windows and Linux, MacOS soon) by being available as VST (and maybe soon as LV2 and AudioUnit). So far, the plugins are somewhat guitar-related, but other tools might come in the future.
 
** http://flos-audio-plugins.eu/index.php/audio-plugins/kalthallen-cabs
 
** http://flos-audio-plugins.eu/index.php/audio-plugins/guitarhack
 
** http://flos-audio-plugins.eu/index.php/audio-plugins/god-s-cab
 
 
 
* https://github.com/danilobellini/hexd-plugins-lv2 - distortion, gain, highpass, lowpass
 
 
 
* https://github.com/pgiblock/lmms-lv2
 
 
 
* [http://www.ladspa.org/cmt/overview.html 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.
 
 
 
 
 
 
 
* [http://www.gvst.co.uk/ 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.
 
 
 
 
 
* http://destroyfx.smartelectronix.com/ - windows/mac
 
 
 
* http://runbeerrun.blogspot.co.uk/
 
 
 
* https://sites.google.com/site/cernlinuxvst/home
 
 
 
* http://www.krakliplugins.com/Plugins/
 
 
 
* http://www.soundhack.com/freeware/
 
 
 
* https://www.izotope.com/en/products/effects-instruments/vinyl/
 
 
 
 
 
* http://mrbook.org/stompboxes/
 
 
 
 
 
* [http://www-personal.umich.edu/~mslutsky/elepage ELE] - the Excellent Low-latency Effects
 
 
 
* [https://sourceforge.net/projects/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.
 
 
 
 
 
* [https://github.com/laudrup/Creox4 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".
 
 
 
 
 
 
 
* [http://nixbit.com/cat/multimedia/audio/louderbox/ 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.
 
 
 
 
 
* [https://mediatech.aalto.fi/~tilmonen/mustajuuri/index.html 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 :-)
 
** https://mediatech.aalto.fi/~tilmonen/mustajuuri/plugins.html
 
 
 
 
 
* [http://www.betabugsaudio.com/plugs.php 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.
 
 
 
 
 
 
 
 
 
* https://github.com/guysherman/si-plugins - distortion, hi/low filters
 
 
 
 
 
* https://github.com/jdsierral/Spaco - a AU, VST and VST3 plugin suite related to spatialization.
 
 
 
 
 
* http://gersic.com/vst-audio-filters/
 
 
 
* http://www.xoxos.net/vst/vst.html
 
 
 
* http://www.shuriken.se/
 
 
 
* http://www.smartelectronix.com/index.php?selected=home - many devs, mostly Windows VST
 
 
 
* https://www.meldaproduction.com/product/keyword?keyword=free - Windows/Mac
 
 
 
* http://magnus.smartelectronix.com/
 
 
 
* https://delamanchavst.wordpress.com/
 
 
 
* http://morfiki.blogspot.co.uk/
 
 
 
* http://mdsp.smartelectronix.com
 
 
 
 
 
* [http://www.anarchy-rhythms.com/ Anarchy Rhythms] - a hybrid between an effect and a drum machine. It takes an audio input and applies a user-controlled matrix of amplitude modulation, bandpass filtering, feedback loops, internal oscillation and compression.  It allows you to compose rhythmic patterns from the sonic timbre of the input.
 
** [https://www.youtube.com/watch?v=39J8rYaXuOA Anarchy Rhythms by Anarchy Sound Software Vid 1]
 
** [https://www.youtube.com/watch?v=YfxQsCEuKYA Anarchy Rhythms by Anarchy Sound Software vid 2]
 
 
 
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).
 
 
 
* [https://www.youtube.com/watch?v=gezxWsE7wME 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.
 
* [https://www.youtube.com/watch?v=AtHK8uSSnnc 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.
 
* [https://www.youtube.com/watch?v=sO3cMPlkntA 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.
 
* [https://www.youtube.com/watch?v=YIdoMcWTFYQ 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.
 
* [https://www.youtube.com/watch?v=38lWJ85Rz7k 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.
 
 
 
* [http://anarchysoundsoftware.co.uk/anarchysoundsoftware/?page_id=145 Other Plugins]
 
 
 
* [http://anarchysoundsoftware.co.uk/anarchysoundsoftware/?page_id=87 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.
 
 
 
* [http://anarchysoundsoftware.co.uk/anarchysoundsoftware/?page_id=62 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.
 
 
 
 
 
* [https://selz.com/item/5502b116b798720ca0b05fda 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.
 
 
 
* [https://store.klevgrand.se/item/syndtsphere 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.
 
** https://www.youtube.com/watch?v=iInHA3dOYOY
 
 
 
 
 
* [http://www.acustica-audio.com/index.php?page=shop.product_details&flypage=flypage.tpl&product_id=66&category_id=34&option=com_virtuemart&Itemid=189 Nebula Free Bundle by Acustica Audio]
 
 
 
* [http://www.acustica-audio.com/index.php?option=com_virtuemart&Itemid=297 Acqua Plugins Free Series by Acustica Audio]
 
 
 
 
 
* http://www.linplug.com/download/fullversion.html
 
 
 
* http://www.amvst.com/
 
 
 
* http://www.psychicmodulation.com/plugins.html
 
 
 
* http://www.rs-met.com/freebies.html - Windows VST
 
 
 
* http://www.niallmoody.com/ndcplugs/plugins.htm
 
 
 
* [http://tweakbench.com/ Tweakbench] - free VST instruments and free VST effects
 
 
 
* https://www.xferrecords.com/freeware/
 
 
 
* http://www.contralogic.com/vst-plugins/ - Windows VST
 
 
 
* http://www.voxengo.com/group/free-vst-plugin-download/
 
 
 
* http://www.wollo.com/vst.htm
 
 
 
* http://www.g200kg.com/jp/software/
 
 
 
* http://www.meesha.nl/vst/home.html
 
 
 
* http://dazdisley.co.uk/whiteLABEL
 
 
 
* http://www.krakliplugins.com/Plugins/
 
 
 
* https://tonecarver.wordpress.com/
 
 
 
* http://hyakken.moo.jp/WordPress/product/all_free_vst/
 
 
 
* http://www.tobybear.de/files.html
 
** http://www.vst4free.com/index.php?dev=Tobybear
 
 
 
* http://hgsounds.com/product-category/free-vst-plugins/
 
 
 
=== Listings ===
 
* http://kxstudio.sourceforge.net/Plugins
 
 
 
* linux-sound.org: [http://linux-sound.org/plugins.html Audio Plugin Systems For Linux]
 
 
 
* linux-sound.org: [http://linux-sound.org/linux-vst-plugins.html VST/VSTi Plugins For Linux]
 
 
 
 
 
* [http://www.kvraudio.com/ 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.
 
 
 
* [http://lesitedeburnie.free.fr/lalistedeburnie1-en.html The List 1 - The Best Free Synths]
 
 
 
* http://www.vstplanet.com
 
 
 
* http://wiki.audacityteam.org/wiki/VST_Plug-ins
 
 
 
 
 
* https://splice.com/plugins/free_plugins
 
 
 
* http://www.vst4free.com
 
 
 
* http://equipboard.com/c/free-vst-plugins
 
 
 
* http://zynewave.com/recommended-freeware-plugins/
 
 
 
* http://www.audiopluginsforfree.com/
 
 
 
* http://www.freesoundeditor.com/VSTPlugInseng.htm
 
 
 
== Audio looping ==
 
* https://en.wikipedia.org/wiki/Loop_(music)
 
 
 
* https://en.wikipedia.org/wiki/Dubbing_(music)
 
 
 
* https://en.wikipedia.org/wiki/Delay_(audio_effect)
 
 
 
* https://en.wikipedia.org/wiki/Tape_loop
 
 
 
* https://en.wikipedia.org/wiki/Frippertronics
 
 
 
=== SooperLooper ===
 
* [http://sonosaurus.com/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.
 
 
 
* http://essej.net/slforum/
 
 
 
* https://github.com/moddevices/sooperlooper-lv2-plugin
 
 
 
 
 
* http://www.essej.net/sooperlooper/doc_midi_commands.html
 
 
 
=== Cyclone ===
 
* [http://toxic.cubicarea.it/ 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 ===
 
* [http://openavproductions.com/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!
 
** https://github.com/harryhaaren/openAV-Luppp
 
 
 
* YouTube: [https://www.youtube.com/watch?v=kOGh2tsXBcA Luppp : MIDI Binding]
 
 
 
=== SuperBoucle ===
 
* [http://superboucle.nura.eu/ 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..
 
** https://github.com/Vampouille/superboucle
 
 
 
Cannot create samples live.
 
 
 
=== Freewheeling ===
 
* [http://freewheeling.sourceforge.net/ Freewheeling] - a way to be In The Muse-ical Moment. It's a live looping instrument that returns us to the joy of making music spontaneously.
 
** https://github.com/free-wheeling/freewheeling/
 
 
 
* https://github.com/free-wheeling/freewheeling/wiki
 
** https://github.com/free-wheeling/freewheeling/wiki/Controlling-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 ===
 
* https://github.com/sonejostudios/DeLooper - Sample-accurate Looper/Delay with free mode and midi-clock sync mode. Features: Free Mode,
 
Midi-Clock Mode, Record and Loop Length separated, Erase parts of the loop, Delay mode (via feedback), Simple mix (via mute and volume)
 
 
 
=== loopidity ===
 
* https://github.com/bill-auger/loopidity - A multi-track multi-channel looping audio recorder designed for live handsfree use.
 
 
 
beta??
 
 
 
=== Recursion Looper ===
 
* [https://sourceforge.net/projects/recursionlooper/ 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.
 
** https://jordancolburn.wordpress.com/tag/recursion-looper/
 
 
 
=== Instalooper ===
 
* [http://www.audioblast.me/instalooper.html Insta Looper] - a simple looper with four integrated FX! Multiplatform VST. Bit Reducer, Autopan, Hipass and Phaser.
 
 
 
 
 
=== LoopDub ===
 
* [http://loopdub.sourceforge.net/ LoopDub] - a cross-platform audio application for live loop manipulation.
 
 
 
No live recording.
 
 
 
 
 
=== ClockLoop ===
 
* [http://plugin.org.uk/clockloop/ ClockLoop] - a very simple JACK application for playing back audio loops. MIDI control.
 
 
 
 
 
=== Pywheels ===
 
* https://bitbucket.org/yaricp/pywheels/wiki/Home - Pywheels is an application for musicians who wants to create compositions based upon repeated phrases.
 
 
 
=== kluppe ===
 
* [http://kluppe.klingt.org/ 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 ===
 
* [http://loopcenter.sourceforge.net/ 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 ===
 
* [http://www.wiresundertension.com/soft/ 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
 
** http://www.wiresundertension.com/soft/doc/mnemonica
 
 
 
=== Livid Looper ===
 
* [http://lividinstruments.com/support_downloads.php Livid Looper] - windows/mac/max msp
 
** http://www.livelooping.org/tools/software/livid/
 
 
 
* YouTube: [https://www.youtube.com/watch?v=dDO_-qYpKmU Livid Looper]
 
 
 
=== Mobius ===
 
* [http://www.circularlabs.com/ 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.
 
** http://www.livelooping.org/tools/software/mobius/
 
 
 
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..
 
 
 
* [https://www.youtube.com/watch?v=pwf4pCBmXLo Tutorial : Sonar x3 and mobius VST looper setup]
 
 
 
=== Cycler Looper ===
 
* http://web.archive.org/web/20140912081135/http://www.cycler-looper.com/mainindex.html
 
 
 
* http://www.musicradar.com/news/tech/devine-machine-cycler-the-next-gen-live-looper-233584
 
 
 
* http://www.livelooping.org/tools/software/cycle-looper/
 
 
 
dead and gone?
 
 
 
== Beat slicing ==
 
=== Tranches ===
 
* [http://hitmuri.net/index.php/Software/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 ===
 
* [https://objectivewave.wordpress.com/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.
 
** YouTube: [https://www.youtube.com/watch?v=RtZkKfTJEK8 beatslash-lv2 - demo]
 
 
 
=== SuperBeatRepeater ===
 
* https://github.com/sonejostudios/SuperBeatRepeater - Beat Repeater with Sidechain Beat Recognation and Midi-Clock Sync.
 
 
 
=== StreamSequencer ===
 
* [http://www.wiresundertension.com/soft/ StreamSequencer] - Live Input Sequencer / Cutter-Upper / Upper-Cutter - Windows/Mac
 
** http://www.wiresundertension.com/soft/doc/streamsequencer/
 
 
 
 
 
=== manic ===
 
* [https://delamanchavst.wordpress.com/2013/10/22/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 ===
 
* [http://rock-hopper.github.io/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 [https://github.com/erikd/libsndfile/issues/258].
 
** https://github.com/rock-hopper/shuriken
 
 
 
* YouTube: [https://www.youtube.com/watch?v=5nhS52fhE8k AV Linux 2016 | Create Soundfont | *.sfz | Method: (2) | Shuriken (Beat Slicer)]
 
 
 
=== Freecycle ===
 
* [http://freecycle.redsteamrecords.com/ 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 ===
 
* [http://smasher.sourceforge.net/ 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 [http://sourceforge.net/p/smasher/discussion/911798/thread/c76f9f45/]
 
 
 
=== LoopAuditioneer ===
 
* [http://loopauditioneer.sourceforge.net/ 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 ===
 
* https://github.com/ssssam/boucle - an incompetent glitch looper accompanist.
 
 
 
=== DANAIDES ===
 
* [https://ineardisplay.com/plugins/legacy/ DANAIDES] - Sequenced Sound Mangler. OS X, Windows and Linux. Freeware now.
 
 
 
=== Glitch ===
 
* http://illformed.org/ - Glitch 1.3, Windows
 
** http://illformed.com/ - Glitch 2 - $
 
 
 
=== LiveCut ===
 
* http://mdsp.smartelectronix.com/livecut/ - Windows VST
 
 
 
== Granular ==
 
=== Loomer Cumulus ===
 
* [http://blog.loomer.co.uk/2011/09/loomer-cumulus-computer-music-exclusive.html 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 ===
 
* [http://mourednik.github.io/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.
 
** https://github.com/mourednik/argotlunar
 
 
 
=== Atomic Cloud Grain Cloud Generator ===
 
* [http://gersic.com/atomic-cloud/ 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 ===
 
* [http://ajaxsoundstudio.com/software/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 ===
 
* [http://www.ixi-audio.net/content/body_software_slicer.html 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.
 
** https://github.com/enrike/slicer
 
 
 
=== Narrativas Sonoras ===
 
* [http://ruipenha.pt/works 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 ===
 
* [https://ccrma.stanford.edu/~carlsonc/256a/Borderlands/ Borderlands] - an interactive granular sampler
 
 
 
=== R_MEM ===
 
* [https://ineardisplay.com/plugins/legacy/ R_MEM] - Granulator. The download contains the unlocked installers. OS X and Windows.
 
 
 
=== Granny ===
 
* [https://www.abc.se/~re/GranuLab/Granny.html Granny] - a real-time granular synthesizer for Windows.
 
 
 
=== therapy ===
 
* [https://delamanchavst.wordpress.com/2013/10/23/therapy therapy] - 3 band granulizer effect with absolutely no ability to deliberately control any parameter. Windows VST.
 
 
 
=== Hourglass ===
 
* [https://xenakios.wordpress.com/downloads/ 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.
 
** https://www.kvraudio.com/product/hourglass-by-xenakios
 
 
 
== Notation software ==
 
=== Common Music Notation ===
 
* https://ccrma.stanford.edu/software/cmn/
 
** https://ccrma.stanford.edu/software/cmn/cmn/cmn.html
 
 
 
* https://en.wikipedia.org/wiki/Common_Music_Notation
 
 
 
* https://github.com/thormagnusson/cmn
 
 
 
=== MuseScore ===
 
* [http://musescore.org/ 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
 
** https://github.com/musescore/MuseScore
 
 
 
=== LilyPond ===
 
* [http://www.lilypond.org/ LilyPond] is a music engraving program, devoted to producing the highest-quality sheet music possible. It brings the aesthetics of traditionally engraved music to computer printouts. LilyPond is free software and part of the GNU Project.
 
** http://en.wikipedia.org/wiki/LilyPond
 
** http://lilypond.org/doc/v2.18/Documentation/notation/creating-midi-files
 
** http://lilypond.org/doc/v2.18/Documentation/notation/midi-output
 
 
 
* [http://www.frescobaldi.org/ 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.
 
 
 
* http://www.laborejo.org/
 
 
 
* [http://www.denemo.org/ 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.
 
 
 
* https://github.com/aspiers/ly2video/
 
 
 
* [https://launchpad.net/rumor/ 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 ===
 
* http://music-suite.github.io/docs/ref/
 
 
 
=== Kern ===
 
* http://kern.ccarh.org/ KernScores] - A library of virtual musical scores in the Humdrum **kern data format.
 
** http://kern.humdrum.org/help/tour/
 
 
 
* http://humdrum.ccarh.org/
 
 
* [http://themefinder.org Themefinder] - provides a web-based interface to the Humdrum thema command, which in turn allows searching of databases containing musical themes or incipits.
 
 
 
 
 
 
 
 
 
* [http://www.humdrum.org/ 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++.
 
** http://www.humdrum.org/Humdrum - original homepage
 
** https://github.com/humdrum-tools
 
 
 
=== to sort ===
 
 
 
* [http://www.projectabjad.org/ 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.
 
 
 
 
 
* [http://notezilla.io 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. [https://news.ycombinator.com/item?id=6226607]
 
 
 
 
 
* [http://pianobooster.sourceforge.net/ 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.
 
 
 
 
 
* [http://sourceforge.net/projects/midisheetmusic 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.
 
 
 
 
 
 
 
* [http://www.jniz.org/index.php/en/ 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.
 
 
 
 
 
* [http://sourceforge.net/projects/noteedit.berlios/ 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.
 
 
 
* [http://web.archive.org/web/20150402010516/https://vsr.informatik.tu-chemnitz.de/staff/jan/nted/nted.xhtml 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.
 
 
 
 
 
 
 
* [http://www.lieder.net/lieder 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.
 
 
 
* [http://aerodrums.com/aered/ 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.
 
 
 
 
 
 
 
* [https://github.com/rism-ch/verovio 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.
 
 
 
 
 
 
 
 
 
* [https://www.cs.hmc.edu/~keller/jazz/improvisor 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.
 
** https://github.com/Impro-Visor/Impro-Visor
 
 
 
 
 
* [http://helioworkstation.com/ 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.
 
 
 
 
 
* [https://github.com/lenmus/lenmus 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.
 
 
 
 
 
* [http://denemo.org/ 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.
 
 
 
* [http://nootka.sourceforge.net/ 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.
 
 
 
* https://github.com/Audiveris/audiveris - optical music recognition (OMR) engine.
 
 
 
 
 
* [http://bspaans.github.io/python-mingus 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.
 
** https://github.com/bspaans/python-mingus
 
 
 
* [http://bmc.blind.guru/ 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.
 
** https://github.com/mlang/bmc
 
 
 
 
 
* [http://inscore.sourceforge.net 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
 
** YouTube: [https://www.youtube.com/watch?v=6lQxTNCAPH8 Towards dynamic and animated music notation using INScore - Dominique Fober] - Linux Audio Conference 2017
 
 
 
 
 
* [https://sourceforge.net/projects/canorus 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
 
 
 
 
 
 
 
* [http://guidolib.sourceforge.net/ 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.
 
 
 
 
 
* [http://repmus.ircam.fr/antescofo 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.
 
 
 
 
 
 
 
* http://linux-sound.org/notation.html
 
 
 
 
 
* [http://www.arkkra.com/ 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.
 
 
 
 
 
* [http://staffpad.net 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 ===
 
 
 
* http://abcj.ganderband.com/
 
 
 
* http://abc.sourceforge.net/
 
 
 
* http://abcplus.sourceforge.net/
 
 
 
* http://ifdo.ca/~seymour/runabc/top.html
 
 
 
=== Vexflow ===
 
* http://www.vexflow.com
 
** https://github.com/0xfe/vexflow
 
 
 
* http://www.vexflow.com/vextab/
 
** https://github.com/0xfe/vextab
 
 
 
 
 
=== Service ===
 
* http://chordify.net/
 
 
 
* https://flat.io/en [https://news.ycombinator.com/item?id=11218844]
 
 
 
== Notation data formats ==
 
See also [[Music#Notation]]
 
 
 
* http://www.musedata.org
 
 
 
 
 
* http://www.music-notation.info/en/compmus/notationformats.html
 
 
 
 
 
* [https://puredata.info/groups/pd-graz/label/book/bang_10_juri_80-89.pdf Music as a Formal Language] - Bryan Jurish
 
 
 
 
 
=== Music Macro Language ===
 
* https://en.wikipedia.org/wiki/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).
 
 
 
* http://blog.joehahn.ws/nintendo-nes-sound-effect-and-bumper-explosion
 
 
 
=== 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/Module_file
 
 
 
* 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.
 
 
 
* [http://zakalwe.fi/uade/ UADE] plays old Amiga tunes through UAE emulation and cloned m68k-assembler Eagleplayer API.
 
 
 
* [http://modarchive.org 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://en.wikipedia.org/wiki/Mod_Archive
 
 
 
 
 
 
 
* 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
 
 
 
* https://github.com/viiri/st2play
 
 
 
* https://github.com/fmeyer/bpm - Mod music player
 
 
 
=== MIDI ===
 
See [[#MIDI_3|#MIDI]]
 
 
 
=== ABC ===
 
* http://abcnotation.com/
 
** http://en.wikipedia.org/wiki/ABC_notation
 
 
 
=== MusicXML ===
 
* http://www.musicxml.com/
 
** https://en.wikipedia.org/wiki/MusicXML
 
 
 
=== MuseData ===
 
* http://wiki.ccarh.org/wiki/MuseData_file_specification
 
 
 
=== Music Markup Language ===
 
* [http://www.musicmarkup.info/ Music Markup Language] (MML) is an attempt to mark music objects and events with an XML-based language. Marking such objects should enable managing music documents for various purposes, ranging from music theory and notation to practical performance.
 
** https://en.wikipedia.org/wiki/Music_Markup_Language
 
 
 
=== GUIDO / GMN ===
 
* http://science.jkilian.de/salieri/GUIDO
 
 
 
* https://en.wikipedia.org/wiki/GUIDO_music_notation
 
 
 
=== MEI ===
 
* https://github.com/music-encoding/music-encoding
 
 
 
=== Structured audio ===
 
* https://en.wikipedia.org/wiki/MPEG-4_Structured_Audio
 
 
 
* https://en.wikipedia.org/wiki/Structured_Audio_Orchestra_Language
 
 
 
=== SDIF ===
 
* http://sdif.sourceforge.net/
 
** http://sdif.sourceforge.net/wiki/index.php/Main_Page
 
 
 
* https://en.wikipedia.org/wiki/SDIF
 
 
 
== MIDI ==
 
* https://wiki.archlinux.org/index.php/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 ===
 
* [https://www.cs.cf.ac.uk/Dave/Multimedia/node155.html Introduction to MIDI (Musical Instrument Digital Interface)]
 
 
 
* YouTube: [https://www.youtube.com/playlist?list=PLkX4vguQdLMiE1ya62wVb45A_gSegBQmc 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.
 
 
 
 
 
* [https://newt.phys.unsw.edu.au/jw/notes.html Note names, MIDI numbers and frequencies]
 
 
 
* https://web.archive.org/web/20150910051436/http://sound.condorow.net/midi.html
 
 
 
* [http://multiple.insertions.com/mi_html/contrib/other/bobw/midi.htm The USENET MIDI Primer]
 
 
 
 
 
 
 
* [http://slackermedia.info/handbook/doku.php?id=midi Slackermedia Handbook: MIDI]
 
 
 
* http://www.tldp.org/HOWTO/MIDI-HOWTO.html
 
 
 
* http://lsn.ponderworthy.com/doku.php/audio_with_midi_on_linux
 
 
 
* [https://ccrma.stanford.edu/~craig/articles/linuxmidi/ Introduction to MIDI programming in Linux]
 
 
 
 
 
* [https://www.youtube.com/watch?v=p2CsRZoatc8 Tobi Wulff: Control All Your Programs with MIDI Controllers]
 
** https://speakerdeck.com/nzpug/tobi-wulff-control-all-your-programs-with-midi-controllers
 
 
 
=== Articles ===
 
* [http://audio.californiareport.org/archive/R201302081630/c MIDI's Creator Finally Steps Into the Spotlight] - Dave Smith
 
 
 
* [http://jeffrona.com/2013/01/midi-from-the-inside/ MIDI From The Inside] - Jeff Rona
 
 
 
* http://thequietus.com/articles/11189-midi-30th-anniversary [https://news.ycombinator.com/item?id=5098719]
 
 
 
 
 
* http://www.noterepeat.com/articles/how-to/213-midi-basics-common-terms-explained
 
 
 
 
 
* http://music.tutsplus.com/series/manipulating-midi-setup-sequencing-and-secrets--audio-17115
 
 
 
=== Specifications ===
 
* https://en.wikipedia.org/wiki/Comparison_of_MIDI_standards
 
 
 
* https://en.wikipedia.org/wiki/Category:MIDI_standards
 
 
 
 
 
* http://computermusicresource.com/MIDI.Commands.html
 
 
 
* [http://www.dewassoc.com/support/msdos/decimal_hexadecimal.htm Conversion Table - Decimal - Hexadecimal - Binary]
 
 
 
 
 
* http://www.midimountain.com/midi/midi_note_numbers.html
 
 
 
* http://computermusicresource.com/midikeys.html
 
 
 
 
 
* [http://newt.phys.unsw.edu.au/jw/notes.html Note names, MIDI numbers and frequencies]
 
 
 
* http://www.indiana.edu/~emusic/hertz.htm
 
 
 
 
 
* https://github.com/milasudril/midi-constants - An unofficial MIDI SDK. This repository contains all (General)MIDI constants in semicolon delimited text files.
 
 
 
 
 
 
 
 
 
* [http://www.blitter.com/~russtopia/MIDI/~jglatt/tech/midispec.htm 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.
 
 
 
 
 
* https://jimmenard.com/midi_ref.html
 
 
 
* http://www.ccarh.org/courses/253/handout/midiprotocol/
 
 
 
* MIDI.org: [https://www.midi.org/specifications/item/table-1-summary-of-midi-message Summary of MIDI Messages]
 
 
 
=== 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.
 
 
 
* http://www.deluge.co/?q=midi-tempo-bpm
 
 
 
"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)"
 
 
 
 
 
* http://www.midikits.net/midi_analyser/running_status.htm
 
 
 
=== Continuous Controllers  ===
 
* [http://www.ccarh.org/courses/253/handout/controllers/ MIDI Continuous Controllers] - MIDI CC
 
 
 
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
 
 
 
* MIDI.org: [https://www.midi.org/specifications/item/table-3-control-change-messages-data-bytes-2 CC messages]
 
 
 
* [http://tweakheadz.com/midi-controllers/ The Tweaker's Guide to MIDI Continuous Controller Commands]
 
 
 
* [http://nickfever.com/music/midi-cc-list MIDI Continuous Controllers (CC) List]
 
 
 
 
 
"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
 
 
 
 
 
* https://en.wikipedia.org/wiki/NRPN
 
 
 
=== 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.
 
* https://en.wikipedia.org/wiki/General_MIDI_Level_2
 
 
 
* https://en.wikipedia.org/wiki/File:GM_Standard_Drum_Map_on_the_keyboard.svg
 
 
 
=== SysEx ===
 
* [http://www.chromakinetics.com/handsonic/rolSysEx.htm Roland System Exclusive Implementation]
 
 
 
* [http://www.2writers.com/eddie/TutSysEx.htm MIDI SysEx Tutorial]
 
 
 
* 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 ====
 
* [http://www.midiextender.com/products/Twisted_Pair_MIDI_Extender.htm MIDI-1001 Twisted Pair MIDI Extender]
 
 
 
==== Synth module ====
 
* https://en.wikipedia.org/wiki/Sound_module
 
 
 
 
 
* [http://tweakheadz.com/midi-synth-modules/ All About MIDI Synth Modules]
 
 
 
* [http://mitxela.com/projects/smallest_midi_synth 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. [https://news.ycombinator.com/item?id=10864880]
 
 
 
==== Instrument ====
 
Yamaha DJX:
 
* [https://www.manualslib.com/manual/196295/Yamaha-Djx.html?page=95#manual MIDI Function Paramaters]
 
* [http://www.manualslib.com/manual/196295/Yamaha-Djx.html?page=112 Midi Implementation Chart]
 
* [http://forum.image-line.com/viewtopic.php?p=615353 MIDI DJX D1 SFX - Effect Map]
 
 
 
* [http://www.jososoft.dk/yamaha/articles/midi_10.htm MIDI - Message List] - The Unofficial YAMAHA Keyboard Resource Site
 
 
 
 
 
* YouTube: [https://www.youtube.com/watch?v=dXKc6pIwWKI Yamaha Styles - The Single Finger Mode]
 
** [http://faq.yamaha.com/us/en/article/musical-instruments/keyboards/digitalkeyboards/portable_keyboards/psr180/627/2033/single_finger_and_fingered_methods_to_generate_auto_accompaniment_on_psr77-psr180-psr185 Single Finger and Fingered methods to generate Auto Accompaniment on PSR77/PSR180/PSR185]
 
 
 
"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."
 
 
 
 
 
 
 
* [https://github.com/fatboyfitz/drumroll Drumroll] - allows to play Dream Cheeky USB Roll Up Drum Kit on Linux
 
 
 
* https://github.com/Lt-Henry/gnome-drumroll - User space midi driver and gui for a cheap usb drum
 
 
 
==== Trigger ====
 
 
 
* [https://web.archive.org/web/20121125193646/http://www.ise.pw.edu.pl/~wzab/MIDI/perkusja/index.html Do-It-Yourself V-USB MIDI Drum Trigger]
 
** https://github.com/wzab/midi-drum-trigger
 
 
 
 
 
* [http://www.megadrum.info/ 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!
 
** http://blog.simmonsmuseum.com/?p=545
 
 
 
 
 
* [https://midisizer.com/ MidiSizer] - Peter Kvitek’s DIY projects webpage. Mostly related to MIDI and Synthesizers at this point. MidiALF, MidiREX, MidiGAL, MidiThru, Midi2CV, etc.
 
 
 
 
 
* [https://courses.cit.cornell.edu/ee476/FinalProjects/s2001/nsk5/bottomframe.htm 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.
 
[https://news.ycombinator.com/item?id=5774337]
 
 
 
* [http://www.midikits.net/ Midi Kits]
 
 
 
 
 
==== Projects ====
 
===== Beat707 =====
 
* http://www.wusik.com/w
 
** https://github.com/Beat707/Beat707-Mikro - Open Source Arduino Compatible MIDI Sequencer / Groove Box & Sample Player
 
** https://github.com/Beat707/Beat707-NXT - Open Source Arduino Compatible MIDI Sequencer
 
** https://github.com/Beat707/Beat707-Drum-Machine-V1
 
 
 
* http://www.beat707.com/w
 
** https://github.com/Beat707/Beat707-MPU - Beat707 MIDI Key Switch, using the ATtiny2313
 
 
 
 
 
===== MidiBOX =====
 
* [http://www.ucapps.de/ uCApps.de] - Non-commercial DIY Projects for MIDI Hardware Geeks
 
** [http://www.ucapps.de/midibox_seq.html MIDIbox SEQ V4] - 16 Track Live Step and Morph Sequencer + advanced Arpeggiator
 
 
 
 
 
* [http://www.midibox.org/ MIDIbox.org Blog] - News about MIDIbox Projects
 
* [http://www.midibox.org/dokuwiki/doku.php?id=start 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 =====
 
* http://mutable-instruments.net/midipal
 
** http://createdigitalmusic.com/2012/08/midipal-is-an-open-box-for-doing-stuff-with-notes-and-sequences-and-things-gallery-interview/
 
** https://github.com/pichenettes/midipal
 
 
 
===== Axoloti =====
 
* [http://www.axoloti.com/ Axoloti] - a platform for sketching music-DSP algorithms running on standalone hardware.
 
** https://github.com/axoloti/axoloti/
 
 
 
===== Raspberry Pi =====
 
* [http://www.joebutton.co.uk/blog/baremetal-midi-lv2-raspberrypi/ Baremetal MIDI file player / LV2 synth host for the Raspberry Pi]
 
 
 
===== Arduino =====
 
* [https://www.arduino.cc/en/Tutorial/MidiDevice 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.
 
 
 
 
 
* http://playground.arduino.cc/Main/ArduinoSynth
 
 
 
 
 
* http://projectgus.github.io/hairless-midiserial/
 
 
 
* [http://www.michaelminn.com/linux/notemidi/ 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 ====
 
* http://www.livelooping.org/tools/control-apps/
 
 
 
 
 
Want: channel faders, mixer fader, buttons, pots. No keys.
 
 
 
* https://controllers.cc/
 
 
 
* https://www.reddit.com/r/Controllers
 
 
 
 
 
* http://www.akaipro.com/product/apc40-mkii
 
 
 
* http://global.novationmusic.com/launch/launch-control-xl , old - zero-sl-mkii
 
 
 
 
 
* https://github.com/ryanjamesmcgill/Audio-Sampler-Selector - An embedded linux system that plays back audio samples for musical performance.
 
 
 
 
 
* [http://usbpiano.sourceforge.net/ 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
 
 
 
* http://terpstrakeyboard.com/news/
 
** https://www.indiegogo.com/projects/terpstra-keyboard-280-color-changing-continuous-controllers#/
 
** https://www.youtube.com/watch?v=Nb_TQpwam54
 
** https://www.youtube.com/watch?v=QUJ2oND3cdg
 
 
 
 
 
* http://musician.ua/en/shop/category/klavishnye/sintezatory/kontrollery-i-dram-mashiny
 
 
 
* https://hackaday.io/project/9350-exadrums
 
 
 
 
 
* http://onyx-ashanti.com/
 
 
 
* https://zaqaudio.com/ - Zaquencer - custom firmware for the Behringer BCR2000 that will turn it into a standalone
 
MIDI step sequencer.
 
 
 
* https://github.com/tadfmac/mi-muz
 
 
 
 
 
* http://www.c-thru-music.com/  - harmonic table midi controller [https://news.ycombinator.com/item?id=686770]
 
 
 
* http://www.jidesk.net/computing/nolae
 
 
 
 
 
* YouTube: [https://www.youtube.com/watch?v=JPDsW_n8F5o How To Practice Finger Drumming and Controllerism with Mad Zach]
 
 
 
 
 
* https://hackaday.io/project/5795-modulum
 
 
 
===== MIDIpal =====
 
* [https://mutable-instruments.net/archive/midipal/build MIDIpal] - a smart and small MIDI processor. Insert it between a MIDI keyboard (or sequencer) and a MIDI sound module to unleash powerful compositional tools and effects.
 
** https://github.com/pichenettes/midipal
 
 
 
 
 
* https://midisizer.com/other/midibud/
 
 
 
* https://midisizer.com/midigal/
 
 
 
===== 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 =====
 
* [http://www.korg.com/us/support/download/software/0/159/1354/ nanoKONTROL2/KORG KONTROL Editor] - windows/wine
 
 
 
 
 
* https://github.com/royvegard/Nano-Basket - configure midi control codes, nanokKONTROL 1 only!!
 
** https://freesoftwaremusic.wordpress.com/2014/07/28/nano-basket/
 
 
 
* http://www.winko-erades.nl/index.php?option=com_content&view=article&id=51:using-the-korg-nanokontrol-2-in-qtractor&catid=11:music&Itemid=7
 
 
 
 
 
"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"
 
 
 
 
 
* https://github.com/overtone/overtone/blob/master/src/overtone/device/midi/nanoKONTROL2.clj
 
 
 
===== monome =====
 
* https://github.com/murrayfoster/candor
 
 
 
 
 
* https://github.com/danlerche/monome-step-sequencer
 
 
 
 
 
* http://www.linuxformat.com/content/meeq-v10
 
 
 
===== Faderfox =====
 
* http://www.faderfox.de/
 
 
 
 
 
===== Nibbletronic =====
 
* http://www.schlimme-gegend.de/schlimme-ideen/nibbletronic/
 
** https://github.com/schlimme-gegend/nibbleTronic
 
** YouTube: [https://www.youtube.com/watch?v=QfzZT7q9SaM The Nibbletronic: A DIY MIDI Controller and a New UI for Wind Instruments -33c3-]
 
 
 
===== MIDI_controller =====
 
* https://github.com/tttapa/MIDI_controller - This is a library for creating a MIDI controller using an Arduino or Teensy board.
 
 
 
===== Ctrlr =====
 
* [http://ctrlr.org/ 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.
 
** https://github.com/RomanKubiak/ctrlr
 
 
 
* http://ctrlr.org/getting-started/
 
 
 
=== ALSA ===
 
* http://alsa.opensrc.org/AlsaMidiOverview
 
 
 
* [http://alsa-project.org 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.
 
 
 
* [https://alsa.opensrc.org Alsa Opensrc Org] - unofficial wiki, Independent ALSA and linux audio support site
 
 
 
 
 
aconnect -i
 
  # list MIDI input devices
 
 
aconnect -o
 
  # list MIDI output devices
 
 
 
 
 
[https://linux.die.net/man/1/aseqdump aseqdump] -p ##
 
  # detect events from keyboard number ##
 
 
 
 
 
* http://alsa-project.org/main/index.php/Tutorials_and_Presentations
 
 
 
* http://alsa-project.org/main/index.php/Developer_Zone
 
 
 
* http://alsa-project.org/main/index.php/ALSA_Library_API
 
* [http://www.alsa-project.org/alsa-doc/alsa-lib ALSA project - the C library reference]
 
 
 
 
 
* 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 ====
 
 
 
* https://www.alsa-project.org/main/index.php/Matrix:Module-usb-audio
 
 
 
* http://alsa.opensrc.org/Usb-audio
 
 
 
 
 
* [https://www-uxsup.csx.cam.ac.uk/pub/doc/suse/suse9.0/userguide-9.0/ch18s09.html ALSA and MIDI]
 
 
 
* [https://www.kernel.org/doc/Documentation/sound/alsa/seq_oss.html OSS Sequencer Emulation on ALSA]
 
 
 
 
 
* [http://xed.ch/h/midi.html MIDI With Linux]
 
 
 
==== ALSA MIDI Raw ====
 
* [http://www.alsa-project.org/alsa-doc/alsa-lib/rawmidi.html ALSA project - the C library reference - RawMidi interface]
 
 
 
* 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 ====
 
* [http://www.alsa-project.org/alsa-doc/alsa-lib/seq.html ALSA project Sequencer interface]
 
 
 
* [http://www.alsa-project.org/alsa-doc/alsa-lib/group___sequencer.html MIDI Sequencer]
 
 
 
 
 
* [http://www.alsa-project.org/~frank/alsa-sequencer Advanced Linux Sound Architecture - Sequencer] - 1999, Frank van de Pol, Netherlands
 
 
 
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
 
 
 
* https://jan.newmarch.name/LinuxSound/index.html - programming. book now unavailable online.
 
 
 
==== Utils ====
 
to resort
 
 
 
 
 
* [http://linux.die.net/man/1/arecordmidi arecordmidi] - a command-line utility that records a Standard MIDI File from one or more ALSA sequencer ports. To stop recording, press Ctrl+C.
 
 
 
 
 
 
 
* [http://kmetronome.sourceforge.net/kaseq.shtml 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.
 
 
 
 
 
 
 
 
 
* http://www.technologyreview.com/view/542506/musical-genres-classified-using-the-entropy-of-midi-files/
 
 
 
* https://github.com/i3149/chimidi - MidiRoulette, Play with a friend, play with a stranger.
 
 
 
 
 
 
 
* 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.
 
 
 
* [https://www.npmjs.com/package/jsmidgen 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.
 
 
 
 
 
 
 
* [http://upland.no/download/ 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.
 
 
 
 
 
 
 
 
 
* [https://github.com/original-male/midipus 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.
 
 
 
 
 
* [https://github.com/original-male/asspatch 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.
 
 
 
 
 
* [http://www.sfinney.com/pages/FTAP.html 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 ===
 
* [https://github.com/aiobofh/midi-utils 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
 
 
 
* [http://www.varal.org/ttymidi/ 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.
 
 
 
 
 
* [http://lsmi-all.sourceforge.net/ 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.
 
 
 
* [http://sourceforge.net/projects/nahlwe/ 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/ovenwerks/midikb - keyboard to JACK MIDI program, fork of actkbd. modular config, doesn't see an active jack server?
 
 
 
 
 
* [http://shelljam.sourceforge.net/ Shelljam] - turn your non-touch-sensitive musical keyboard and a two-axis MIDI controller (mouse) hardware input into MIDI signals
 
** https://sourceforge.net/projects/shelljam
 
 
 
* 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).
 
 
 
 
 
* [https://sourceforge.net/projects/webcammidi/ 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 ====
 
* [http://home.earthlink.net/~gmoonlit/raton/raton.html 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.
 
 
 
* [https://github.com/fps/kontroll 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.
 
 
 
 
 
* [https://github.com/ssj71/touchMIDI TouchMIDI] - turns your touchpad into a MIDI controller!
 
** http://mountainbikesandtrombones.blogspot.co.uk/2011/10/touchmidi.html
 
 
 
==== Graphics tablet ====
 
* [http://sourceforge.net/projects/linuxmiditouch/ 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 ====
 
* [https://terminatorx.org/addons/ 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.
 
 
 
* [http://rejoystick.sourceforge.net/ 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.)
 
 
 
* [http://miditoys.sourceforge.net/ Midi Toys] - Thumb mixer works with a playstation 2 style controller, a study in user  interaction.
 
 
 
* https://github.com/falkTX/nooice - Joysticks as JACK-MIDI devices
 
 
 
==== Virtual keyboard ====
 
* [http://vmpk.sourceforge.net/ 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.
 
 
 
* [http://www.nongnu.org/ll-plugins/lv2/klaviatur.html 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.
 
 
 
* [http://www.alsa-project.org/~tiwai/alsa.html 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,
 
 
 
 
 
* [http://jack-keyboard.sourceforge.net/ 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.
 
 
 
 
 
* https://sourceforge.net/projects/akkeyrdion - Turn your computer keyboard into a chromatic accordion keyboard. Ah, but it already is..
 
 
 
* https://github.com/fps/kmidik - A very very simple virtual midi keyboard app that makes glorious use of global shortcuts
 
 
 
* https://github.com/henriqueleng/svmidi - very simple virtual midi keyboard.
 
 
 
* http://www.perlmonks.org/?node_id=368509
 
 
 
* https://sourceforge.net/projects/vpiano - A virtual piano based on MIDI played by ordinary keyboard and mouse.
 
 
 
* http://freepiano.tiwb.com - Windows VST
 
** https://sourceforge.net/projects/freepiano/
 
 
 
==== Software controls ====
 
* [https://sourceforge.net/projects/midicontrol/ 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.
 
** http://freecode.com/projects/midicontrol
 
 
 
* [http://sourceforge.net/projects/midicontrol/ 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.
 
 
 
* [http://www.equalarea.com/paul/xphat/ 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.
 
 
 
 
 
* [http://thepiz.org/plugins/?p=midiPads 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).
 
 
 
 
 
* [https://web.archive.org/web/20110819101030/http://khagan.berlios.de/ KHAGAN] — Widgets of Dominance
 
 
 
 
 
* [https://sourceforge.net/projects/midiball/ 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.
 
 
 
 
 
* [https://code.google.com/archive/p/accordion/ 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.
 
 
 
* [https://code.google.com/archive/p/melodeon 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,
 
 
 
 
 
* [http://www.makelinux.com/man/1/S/showq 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.
 
 
 
* [http://linux-show-player.sourceforge.net/ 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.
 
 
 
 
 
* [https://liine.net/en/products/lemur 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 - $
 
 
 
* [http://www.humatic.de/htools/touchdaw 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 - $
 
** http://swampyankeesound.com/touchdaw.html
 
 
 
==== Microtonal ====
 
* [https://www.dynamictonality.com/relayer.htm 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 ====
 
* https://github.com/dsheeler/v4l2_wayland - Computer vision midi instrument.
 
 
 
=== Audio to MIDI ===
 
* https://github.com/x42/onsettrigger.lv2 - An audio to midi converter currently intended for Bass/Kick-drums.
 
 
 
* https://github.com/metachronica/audio-dsp-midi-trigger - LV2 plugin which detects peaks by audio signal and sends MIDI notes.
 
 
 
 
 
* https://github.com/dsheeler/harmonizer.lv2 - uses the aubio toolkit for note onset and pitch detection on audio input and outputs midi.
 
 
 
 
 
* [https://github.com/shish/mic2midi 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
 
 
 
 
 
* [http://home.gna.org/midingsolo/ 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
 
 
 
 
 
* [https://github.com/kichiki/WaoN 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.
 
 
 
* https://github.com/ahlstromcj/waonc - A follow-on to Kengo Ichiki's "waon" project that converts audio to MIDI, provides organized code and perhaps some new features.
 
 
 
=== Video to MIDI ===
 
* http://wechselspieler.sourceforge.net/
 
 
 
* http://audiocookbook.org/gms/ - processing
 
 
 
=== MIDI to text ===
 
* [https://github.com/markc/midicomp 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.
 
 
 
* [https://github.com/Yxven/Midi2Text 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.
 
 
 
 
 
* [https://github.com/ahlstromcj/midicvt 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 ===
 
* https://freesoftwaremusic.wordpress.com/2015/03/29/midi-monitors/
 
 
 
==== 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 ====
 
* [http://home.gna.org/gmidimonitor/ GMIDImonitor] is GTK+ application that shows MIDI events.
 
 
 
Doesn't display raw MIDI note number, doesn't display active sensing (and other such messages?).
 
 
 
==== KMidimon ====
 
* [http://kmidimon.sourceforge.net/ 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 ====
 
* [https://sourceforge.net/projects/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 ====
 
* [https://github.com/surfacepatterns/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 ====
 
* [https://sourceforge.net/projects/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 ====
 
* [http://www.alsa-project.org/~tiwai/alsa.html 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 ====
 
* [https://open-music-kontrollers.ch/lv2/sherlock/#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 ====
 
* https://github.com/MaurizioB/MidiGraph
 
 
 
==== MidiView1 ====
 
* https://github.com/tau-tao/MidiView1
 
 
 
==== MIDITrail ====
 
* http://miditrail.osdn.jp/
 
 
 
==== 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 ===
 
* [http://www.teuton.org/~gabriel/jack_midi_clock/ JACK MIDI Clock] — Utility to send MIDI Clock pulses that follow the JACK Transport.
 
** https://github.com/x42/jack_midi_clock
 
 
 
* 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 ====
 
* [http://home.gna.org/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 ====
 
* [https://github.com/williamweston/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 ====
 
* [http://alsa.opensrc.org/Aconnect aconnect] - ALSA sequencer connection manager
 
 
 
==== ALSA Patch Bay ====
 
* [http://pkl.net/~node/software/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 ====
 
* [http://openmusickontrollers.github.io/lv2/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 ====
 
* [https://sourceforge.net/projects/midi-layer/ 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 ====
 
* [https://www.linux-apps.com/content/show.php/QMidiRoute?content=112653 QMidiRoute] - a MIDI event processor and router for the ALSA sequencer with a graphical interface based on the Qt toolkit.
 
** http://alsamodular.sourceforge.net/ - package
 
 
 
* http://manpages.ubuntu.com/manpages/wily/man1/qmidiroute.1.html
 
 
 
* http://jeffhendricks.net/?tag=qmidiroute
 
 
 
==== Zweeger ====
 
* [http://www.parkingb.be/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) ====
 
* [http://freecode.com/projects/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 ====
 
* [http://www.stalkerzone.net/mcr.html 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 ====
 
* [http://chrismennie.ca/music.html 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.
 
** https://bitbucket.org/camennie/fmidiautomation
 
 
 
==== XController ====
 
* [https://sourceforge.net/projects/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 ====
 
* [https://sourceforge.net/p/arpage/code/HEAD/tree/trunk/ 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 ====
 
* https://github.com/SpotlightKid/midiscenemanager - Switch between setups of MIDI devices (scenes) with a press of a button.
 
 
 
==== QMIDICurves ====
 
* [https://sourceforge.net/projects/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 ====
 
* [https://github.com/x42/midifilter.lv2 midifilter.lv2] - LV2 plugins to filter MIDI events. So far 27 MIDI event filters have been implemented
 
 
 
* [https://x42.github.io/midifilter.lv2/http___gareus_org_oss_lv2_midifilter_cctonote.html 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
 
* [https://x42.github.io/midifilter.lv2/http___gareus_org_oss_lv2_midifilter_mididup.html 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
 
* [https://x42.github.io/midifilter.lv2/http___gareus_org_oss_lv2_midifilter_monolegato.html 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
 
* [https://x42.github.io/midifilter.lv2/http___gareus_org_oss_lv2_midifilter_notetocc.html Note2C] - Convert MIDI note-on messages to control change messages.
 
* [https://x42.github.io/midifilter.lv2/http___gareus_org_oss_lv2_midifilter_notetoggle.html 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
 
 
 
* https://github.com/x42/midimap.lv2 - a flexible MIDI event mapping plugin, using a rule-based lookup-table, which is loaded from a config file.
 
 
 
==== Piz MIDI ====
 
* [http://www.thepiz.org/pizmidi/?p=pizmidi 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.
 
** KVR: [http://www.kvraudio.com/forum/viewforum.php?f=148 Insert Piz Here subforum]
 
** https://github.com/jpauwels/pizmidi/tree/master/Release/doc - individual plugin .txt docs
 
** KVR: [http://www.kvraudio.com/forum/viewtopic.php?t=192282 piz midi plugins (windows/linux/mac)]
 
 
 
* https://bitbucket.org/agraef/pizmidi/ - a linux fork of piz midi, a comprehensive suite of VST MIDI plugins available from http://thepiz.org/pizmidi/. These will be useful for anyone working with MIDI in their musical projects, but note that they require a VST host capable of loading pure MIDI plugins. (They should work fine with most popular open-source and commercial Linux DAWs nowadays.)
 
** https://aur.archlinux.org/packages/pizmidi-git/
 
 
 
* 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).
 
 
 
 
 
* [http://www.thepiz.org/plugins/?p=midiLooper 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 ====
 
* [http://www.s-production.de/index_vst.html 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 ====
 
* [http://www.sreal.com/~div/midi-utilities/ Div's MIDI Utilities] - a collection of MIDI utilities I wrote for myself, which you may find useful as well. I previously kept separate collections of MIDI utilities for Windows and for Unix, but due to an increasing amount of overlap, I have combined them into a single package.
 
** https://github.com/dgslomin/divs-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 ====
 
* [https://svn.gtmp.org/svn/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.
 
 
 
* https://svn.gtmp.org/svn/lv2/pidim
 
 
 
* 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 ====
 
* [https://jstuff.wordpress.com/js-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 ====
 
* [http://cowlark.com/amidimap/index.html 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 ====
 
* [http://das.nasophon.de/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”.
 
** https://github.com/dsacre/mididings
 
 
 
Arch Linux package is old. Install from git for latest version.
 
 
 
 
 
* http://dsacre.github.io/mididings/doc
 
 
 
* https://github.com/dsacre/mididings/blob/master/doc/examples
 
* https://github.com/orlammd/Sebkha-Chott_Setup
 
* https://github.com/orlammd/PlagiatSetup
 
* https://github.com/m4773rcl0ud/launchpaddings
 
* http://leyoy.free.fr/mididings_jack_transport.py.txt
 
* http://www.rncbc.org/drupal/node/1787
 
* https://github.com/Excds/seq24-launchpad-mapper/blob/master/seq24-launchpad-mapper.py
 
 
 
* http://trac.chrisarndt.de/code/wiki/WebDings
 
 
 
==== Midish ====
 
* [http://www.midish.org/ 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 ====
 
* [https://wiki.haskell.org/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 ====
 
* [http://sourceforge.net/projects/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 ====
 
* [https://sourceforge.net/projects/livemidirouter 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 ====
 
* [https://www.patchmaster.org/ 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.
 
** https://github.com/jimm/patchmaster
 
** https://github.com/jimm/seamaster
 
 
 
==== Qualm ====
 
* [http://portnoyslp.github.io/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.
 
** https://github.com/portnoyslp/qualm
 
 
 
 
 
==== 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 ===
 
* [http://www.midiplugins.com/default.aspx MIDIplugins midi plugins] - Windows
 
 
 
==== PIZ midiCurve ====
 
* [http://thepiz.org/plugins/?p=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 ====
 
* [http://www.codefn42.com/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 ====
 
* [http://www.codefn42.com/notemapper 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 ====
 
* http://www.midiflow.com/ - iPad - $
 
 
 
=== Generation ===
 
==== Euclidean Pattern Generator ====
 
* [http://www.hisschemoller.com/blog/2017/euclidean-pattern-generator-1-2 Euclidean Pattern Generator 1.2] - Wouter Hisschemöller, Java, March 2, 2017
 
** https://github.com/WouterHisschemoller/Euclidean-Pattern-Generator
 
 
 
==== SoundHelix ====
 
* [http://www.soundhelix.com/ 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 ====
 
* https://github.com/gilesbowkett/archaeopteryx - Archaeopteryx is a MIDI system for Ruby. Archaeopteryx uses MIDIator for MIDI Out and recommends rbcoremidi for MIDI In. The code's quite a mess, and I definitely prefer Clojure (with Overtone) for music hacking today.
 
** [http://www.infoq.com/presentations/archaeopteryx-bowkett Archaeopteryx: A Ruby MIDI Generator]
 
 
 
==== Windows VST / macOS ====
 
* [http://www.vst4free.com/free_vst.php?plugin=Automathico&id=1410 Automathico] - a MIDI note generator based on looped mathematical calculations. Win VST.
 
 
 
 
 
* [http://www.xoxos.net/vst/vst.html#midi 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.
 
 
 
* [http://www.xoxos.net/vst/vst.html#midi 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.
 
 
 
* [http://www.xoxos.net/vst/vst.html#midi Malt] - uses an LFO to periodically alternate between one or both of two midi channels for generating algorithmic sequences.
 
 
 
 
 
* [http://www.xoxos.net/vst/vst.html#midi 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.
 
 
 
* [http://www.xoxos.net/vst/vst.html#midi 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.
 
 
 
 
 
* [http://www.xoxos.net/vst/vst.html#midi Period Seq] - generates rhythmic sequences using four counters.
 
 
 
* [http://www.xoxos.net/vst/vst.html#midi Populus] - populus generates MIDI sequences with a 'biologically modeled behavioural' algorithm. The measure is treated like a 'year,' wherein notes grow, reproduce and combat.
 
 
 
* [http://www.xoxos.net/vst/vst.html#midi 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.
 
 
 
 
 
* [http://www.shuriken.se/?page_id=97 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.
 
 
 
* [https://www.dynamictonality.com/xronomorph.htm 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.
 
 
 
* [http://www.davidgamez.eu/pages/music 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 ===
 
 
 
 
 
* [http://www.xoxos.net/vst/vst.html#midi 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.
 
 
 
* [http://www.xoxos.net/vst/vst.html#midi 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 ===
 
 
 
* [http://qmidiarp.sourceforge.net/ 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.
 
 
 
* [http://www.mucoder.net/en/hypercyclic/ 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.
 
 
 
 
 
* [http://sourceforge.net/projects/arpage/ arpage] - MIDI Arpeggiator w/ JACK Tempo Sync. Alpha status. Source tarball for alpha 0.3.3 release, and SVN access are available.
 
 
 
* [http://flarps.sourceforge.net/ 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.
 
 
 
 
 
* [http://drobilla.net/software/machina/ 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.
 
** http://git.drobilla.net/cgit.cgi/machina.git/
 
 
 
 
 
* https://github.com/arirusso/diamond - MIDI arpeggiator in Ruby
 
 
 
* https://github.com/waveydab/Harmonator -  a midi arpeggiator oriented towards live performance. You input a rhythm, voice pattern, and then play.
 
 
 
 
 
* [http://sourceforge.net/projects/guitarp/ 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 ====
 
* [http://www.vstplanet.com/News/08/Scuzzphut6.htm 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.
 
 
 
 
 
* [http://www.ugoaudio.com/index.php/vst-plugins 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.
 
 
 
* [http://wokwave.com/old-plugins/html/d-arp_dual_midi_arpeggiator.html 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 !)
 
 
 
* [http://www.artovaarala.com/download/download.php Kirnu] - a VST MIDI arpeggiator plug-in which is designed with real-time tweaking and usability in mind.
 
 
 
* [http://www.xoxos.net/vst/vst.html#midi Arp4midi] - A wrapper for Chris Kerry's arpeggiator SEM. I have never used this plugin! Installation of MIDI plugins varies between hosts.
 
 
 
 
 
* [https://code.google.com/archive/p/midi-shape-shifter/ 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
 
** https://www.youtube.com/watch?v=B8kptILs7vw
 
 
 
* [http://graywolf2004.net/wp/ BlueARP] - a Windows VST MIDI Arpeggiator with pattern sequencer style, designed for electronic music genres.
 
** YouTube: [https://www.youtube.com/watch?v=CB8aCeFsilM BlueARP - vst Arpeggiator for Electronic & Trance Music - intro and demonstration]
 
 
 
 
 
* [http://www.codefn42.com/randarp/index.html 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.
 
 
 
 
 
 
 
* http://midimadnesssoftware.com/midi-madness/ - $
 
 
 
=== Velocity ===
 
* [https://x42.github.io/midifilter.lv2/http___gareus_org_oss_lv2_midifilter_velocityscale.html MIDI Velocity Adjust]
 
 
 
* [https://x42.github.io/midifilter.lv2/http___gareus_org_oss_lv2_midifilter_randvelocity.html MIDI Velocity Randomization]
 
 
 
 
 
* https://polyversemusic.com/products/gatekeeper - $
 
 
 
=== Chords ===
 
==== Midi Chord ====
 
* [https://x42.github.io/midifilter.lv2/http___gareus_org_oss_lv2_midifilter_midichord.html 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 ====
 
* [http://www.mucoder.net/en/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 ====
 
* [http://www.thepiz.org/plugins/?p=midiChords midiChords] - The "Ultimate" MIDI chord VST plugin. Maps any note into 0 or more other notes. Windows / Mac.
 
 
 
* [http://www.thepiz.org/plugins/?p=midiChordAnalyzer 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.
 
 
 
* [http://www.codefn42.com/chordz 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.
 
 
 
* [http://www.codefn42.com/chordit 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.
 
 
 
* [http://wokwave.com/old-plugins/html/chordmem_midi_chord_memory_plu.html 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.
 
 
 
* [https://jstuff.wordpress.com/cmah/ 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 ===
 
* [http://xhip.net/effects/?p=Notelogic 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 ===
 
* [https://x42.github.io/midifilter.lv2/http___gareus_org_oss_lv2_midifilter_mapkeyscale.html 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.
 
 
 
* [https://x42.github.io/midifilter.lv2/http___gareus_org_oss_lv2_midifilter_miditranspose.html 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.
 
 
 
* [https://x42.github.io/midifilter.lv2/http___gareus_org_oss_lv2_midifilter_enforcescale.html 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.
 
 
 
 
 
 
 
* [http://www.huygens-fokker.org/scala/ 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.
 
 
 
* [http://www.math.tu-dresden.de/~mutabor/ 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.
 
** https://sourceforge.net/projects/mutabor
 
 
 
* [http://muditulib.eu/ 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.
 
** https://sourceforge.net/projects/muditulib/
 
 
 
* http://sig.sapp.org/doc/examples/humextra/keycor - Key correlation measurements using the Krumhansl-Schmuckler key-finding algorithm. (and also the Gabura algorithm). For use with Humdrum.
 
 
 
 
 
 
 
* [http://www.codefn42.com/cales 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.
 
 
 
* [http://www.vst4free.com/free_vst.php?plugin=AutoTonic_Player&id=2572 AutoTonic Player] - Win VST
 
 
 
 
 
 
 
* [http://www.fabriziopoce.com/progressive_se.html 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 ===
 
* [https://x42.github.io/midifilter.lv2/http___gareus_org_oss_lv2_midifilter_mididelay.html 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.
 
 
 
* [https://x42.github.io/midifilter.lv2/http___gareus_org_oss_lv2_midifilter_ntapdelay.html 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.
 
 
 
 
 
 
 
* [http://www.xoxos.net/vst/vst.html#midi Strumee] - Three modulated MIDI delays for strumming and humanising MIDI. Win VST.
 
 
 
* [http://www.xoxos.net/vst/vst.html#midi Midilegato] - Delays NoteOff events on one midi channel by up to 500ms to turn generated sequences into legato sequences. Win VST.
 
 
 
=== Playback ===
 
* [https://sourceforge.net/projects/playmidi/ Playmidi] - a command-line MIDI file player. It is not an editor - playing midi files is all it does, but it does it very well. New commits.
 
** https://luv.asn.au/overheads/midi/applications-playmidi.html
 
 
 
 
 
* [http://linuxcommand.org/man_pages/aplaymidi1.html 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
 
 
 
 
 
* [http://www.parabola.me.uk/alsa/pmidi.html 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.
 
 
 
 
 
* [http://timidity.sourceforge.net/ 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.
 
** [http://www.parabola.me.uk/alsa/timid.html Timidity ALSA sequencer patch]
 
** [https://wiki.allegro.cc/index.php?title=Using_TiMidity%2B%2B_with_ALSA_raw_MIDI Using TiMidity++ with ALSA raw MIDI]
 
 
 
 
 
* [http://www.mindwerks.net/projects/wildmidi/ 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.
 
** https://github.com/Mindwerks/wildmidi
 
 
 
 
 
* [http://jorgan-home.de/mediawiki_en/index.php?title=Midi jOrgan] comes with its own Midi Processing Language (MPL) which allows to dynamically construct and evaluate Midi messages. MPL expressions consist of various commands.
 
 
 
 
 
* [http://juliencoder.de/jpmidi/ jpmidi] - a Midi-file player that uses Jack-Midi and synchronises to Jack-Transport.
 
 
 
 
 
* [https://bisqwit.iki.fi/source/adlmidi.html AdlMIDI] - a commandline program that plays MIDI files using software OPL3 emulation (FM synthesis).
 
 
 
 
 
 
 
* [http://sourceforge.net/projects/kmid2/ Drumstick Karaoke] - kmid2, MIDI/karaoke player for Windows, Mac OSX and Linux.
 
 
 
* [http://sourceforge.net/projects/jack-smf-utils/ 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.
 
 
 
* http://www.un4seen.com/ - BASSMIDI
 
 
 
* [https://github.com/pedrolcl/Linux-SonivoxEas 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.
 
 
 
* http://developer.kde.org/~larrosa/kmid.html
 
 
 
=== Recording ===
 
* https://github.com/MaurizioB/MidiMemo
 
 
 
=== Accompaniment ===
 
* [http://www.mellowood.ca/mma/ 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.
 
 
 
* [http://linuxband.org/ 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.
 
 
 
* [https://welltemperedstudio.wordpress.com/code/lemma/ 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 ===
 
* https://github.com/sukovec/jmidiexec - Simple SW for executing external software on midi events
 
 
 
* https://github.com/dnschneid/mid2key/network - Convert live midi ON events into simulated key presses
 
 
 
* 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 ===
 
* [http://midishare.sourceforge.net/ 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
 
 
 
* http://wiki.joanillo.org/index.php/Midishare
 
 
 
==== C / C++ ====
 
* [http://x37v.info/projects/xnormidi/ xnormidi] - A C midi implementation for embedded systems.
 
 
 
* [https://github.com/stump/libsmf 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.
 
 
 
* [http://www.music.mcgill.ca/~gary/rtmidi/index.html 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.
 
 
 
* http://portmedia.sourceforge.net/ - portmidi
 
 
 
 
 
* https://github.com/milasudril/midiseq - a set of C++ classes for Standard MIDI File manipulation.
 
 
 
* https://github.com/milasudril/mustudio
 
 
 
 
 
* https://github.com/harryhaaren/JACK-MIDI-Examples - A small suite of apps that demonstrate how to code JACK MIDI applications.
 
 
 
==== Python ====
 
* [http://pp.com.mx/python/alsaseq/project.html alsaseq] – ALSA sequencer bindings for Python
 
 
 
* http://trac.chrisarndt.de/code/wiki/python-rtmidi - A Python wrapper for the RtMidi C++ library written with Cython.
 
 
 
* [http://www.emergentmusics.org/midiutil 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.
 
 
 
* [https://github.com/grantma/python-portmidi 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.
 
 
 
* http://old.mxm.dk/products/public/pythonmidi/
 
 
 
* http://www.emergentmusics.org/midiutil
 
** https://code.google.com/archive/p/midiutil/
 
 
 
* https://mido.readthedocs.org/en/latest Mido - MIDI Objects for Python
 
** https://github.com/olemb/mido
 
 
 
* 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.
 
 
 
* http://www.ponnuki.net/2011/05/diy-soft-synth-midi-controller-processing/
 
 
 
==== Perl ====
 
* [http://www.undef.org.uk/code/midge/ Midge] - Midi sequencing from the comfort of your text editor
 
 
 
==== Java ====
 
* https://github.com/jaudiolibs/jnajack - Java bindings to JACK Audio Connection Kit
 
 
 
* 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.
 
 
 
 
 
* PDF: [http://lac.linuxaudio.org/2007/presentations/lac07_slides_gulden1.pdf Using the JACK Audio Connection Kit] with JavaJens Gulden
 
 
 
==== Ruby ====
 
* https://github.com/arirusso/unimidi
 
 
 
* https://github.com/arirusso/micromidi
 
 
 
* http://tx81z.blogspot.co.uk/2011/08/micromidi-ruby-dsl-for-midi.html [https://news.ycombinator.com/item?id=2982502]
 
** https://github.com/arirusso/micromidi
 
 
 
==== Rust ====
 
* https://github.com/RustAudio/rimd
 
 
 
==== Go ====
 
* https://github.com/scgolang/midi - Dead simple MIDI package for Go. Currently only supports Linux and Mac.
 
 
 
==== Lua ====
 
* [http://www.pjb.com.au/comp/lua/MIDI.html MIDI.lua] - Reading, writing and manipulating MIDI data
 
 
 
* [https://love2d.org/forums/viewtopic.php?t=78547 lovemidi] - a nativ crossplatform MIDI I/O library for LUA | LÖVE | Love2D
 
** https://github.com/SiENcE/lovemidi
 
 
 
==== JavaScript ====
 
* http://abudaan.github.io/heartbeat/
 
 
 
* http://jazz-soft.net/
 
 
 
* https://github.com/adamrenklint/bap
 
 
 
 
 
* https://github.com/substack/baudio - command-line
 
 
 
* https://github.com/mathisonian/boscillate
 
 
 
* [http://galacticmilk.com/midi-js/ 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.
 
** https://github.com/mudcube/MIDI.js
 
 
 
* [https://github.com/cuthbertLab/midi-js-soundfonts/network MIDI.js MIDI.js Soundfonts] - pre-rendered General MIDI soundfonts that can be used immediately with MIDI.js.
 
 
 
* [https://github.com/grimmdude/MidiWriterJS 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]]
 
 
 
* http://tadas-s.github.io/toys/2016/07/01/web-midi-api-is-surprisingly-easy/
 
 
 
* http://automidiflip.com/ [https://news.ycombinator.com/item?id=13553224]
 
 
 
=== Wifi ===
 
* https://code.google.com/archive/p/dsmi/ - MIDI over Wifi. receives MIDI commands and feeds them to your MIDI applications.
 
 
 
=== Remote ===
 
* [http://qmidinet.sourceforge.net/ QmidiNet] - A MIDI Remote Controller via UDP/IP Multicast
 
 
 
* [http://qmidictl.sourceforge.net/qmidictl-index.html QmidiCtl] is a MIDI remote controller application that sends MIDI data over the network, using UDP/IP multicast.
 
 
 
* [http://ccrma.stanford.edu/planetccrma/man/man1/aseqnet.1.html aseqnet] - ALSA sequencer connectors over network
 
 
 
=== Files ===
 
* http://www.cs.cmu.edu/~music/cmsip/readings/Standard-MIDI-file-format-updated.pdf
 
 
 
 
 
* [http://www.fourmilab.ch/webtools/midicsv/ 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.
 
 
 
* http://alsa.opensrc.org/MidiComp
 
 
 
 
 
 
 
* [https://www.jyu.fi/hum/laitokset/musiikki/en/research/coe/materials/miditoolbox/ 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.
 
** https://github.com/miditoolbox/1.1
 
 
 
=== Downloads ===
 
* https://www.reddit.com/r/midimusic
 
 
 
* http://www.cool-midi.com/
 
 
 
=== Windows ===
 
* [http://www.midiox.com/ MIDI-OX], the world's greatest all-purpose MIDI Utility! - Windows.
 
 
 
* http://www.tobias-erichsen.de/software/loopmidi.html - Windows
 
 
 
* http://nerds.de/en/loopbe1.html - Windows
 
 
 
* [http://qkmidi.sourceforge.net/ 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.
 
 
 
* http://wiki.linuxaudio.org/apps/categories/sequencers
 
 
 
=== seq24 ===
 
* [http://filter24.org/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
 
 
 
* YouTube: [https://www.youtube.com/watch?v=J2WDHS1wYeM Linux music tutorial: seq24, part 1]
 
* YouTube: [https://www.youtube.com/watch?v=i3Vpi3oxdqk Linux music tutorial: seq24, part 2]
 
* YouTube: [https://www.youtube.com/watch?v=f8zLV0vlSpY Linux audio demo: Live sequencing with seq24]
 
* YouTube: [https://www.youtube.com/watch?v=GWa4WcERjY4 Playing with Seq24 - MIDI - Linux - Part#1]
 
 
 
 
 
'''forks that aren't as active as seq64/42/32:'''
 
 
 
 
 
* https://launchpad.net/seq24 - fork, last updated 2016
 
 
 
 
 
* https://github.com/oli-kester/kepler34 - last updated 2016
 
 
 
 
 
* 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 ===
 
* https://github.com/Stazed/seq42 - revived fork of Sam Brauer's seq42
 
 
 
=== seq32 ===
 
* https://github.com/Stazed/seq32 - Stazed version of seq24 - name changed to avoid confusion. Many enhancements & bug fixes. development active.
 
 
 
=== 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.
 
 
 
* https://github.com/ahlstromcj/sequencer64-doc
 
** https://raw.githubusercontent.com/ahlstromcj/sequencer64-doc/master/pdf/sequencer64-user-manual.pdf
 
 
 
 
 
* https://raw.githubusercontent.com/ahlstromcj/sequencer64-doc/master/pdf/sequencer64-user-manual.pdf#subsection.8.1 - MIDI control
 
 
 
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]]
 
 
 
* http://wiki.linuxaudio.org/wiki/seq24togglemiditutorial - control seq24 with midi
 
 
 
* https://github.com/Excds/seq24-launchpad-mapper - mididings
 
 
 
 
 
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 ===
 
* [http://non.tuxfamily.org/wiki/index.php?page=Non%20Sequencer 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.
 
 
 
* http://non-sequencer.tuxfamily.org/MANUAL.html
 
 
 
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 ===
 
* [https://harmonyseq.wordpress.com/ 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
 
 
 
* YouTube: [https://www.youtube.com/watch?v=v1d9HlW8Yac harmonySEQ demostration]
 
* YouTube: [https://www.youtube.com/watch?v=ruFxJGRufqE harmonySEQ demostration - Dream About a Peculiar World by Cielak]
 
 
 
* YouTube: [https://www.youtube.com/watch?v=DaaxgM9r1XQ S02-04 Intro to HarmonySeq]
 
* YouTube: [https://www.youtube.com/watch?v=JPba38eKb-s S02-08 harmonySeq - sequencing midi control codes]
 
 
 
 
 
* [http://jeffhendricks.net/?p=780 MIDI Effect Sequencing Software For Guitarists &laquo; Living Outside The Box]
 
 
 
 
 
=== Advanced GTK+ Sequencer ===
 
* [http://gsequencer.org/ 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.
 
** https://github.com/gsequencer/gsequencer
 
 
 
Comments: Interesting interface, not entirely intuitive.
 
 
 
=== MidiEditor ===
 
* [http://midieditor.sourceforge.net/ 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 ===
 
* [http://ariamaestosa.sourceforge.net/ 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 ===
 
* [http://speedymidi.sourceforge.net/ Speedy MIDI] is an editor designed for choirs and singers to quickly generate MIDI files for rehearsal.
 
** https://sourceforge.net/projects/speedymidi
 
 
 
Piano roll tracks view.
 
 
 
=== BigBand ===
 
* [http://members.chello.nl/w.boeke/bigband/index.html 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 ===
 
* [http://web.archive.org/web/20130308131735/http://evanr.infinitymotel.net/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.
 
** https://github.com/evanrinehart/epichord
 
** https://github.com/ViktorNova/epichord
 
 
 
=== Melyseq ===
 
* [http://www.parabola.me.uk/melys/ 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 ===
 
* [http://anthem.sourceforge.net/ 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 ===
 
* [https://web.archive.org/web/20090131133729/http://www.les-stooges.org/pascal/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 ===
 
* [https://bitbucket.org/olivierg/jackbeat/wiki/Home 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
 
 
 
* YouTube: [https://www.youtube.com/watch?v=XpJzuFZ-OM4 Linux Music Creating Loops with JackBeat]
 
 
 
JACK, OSC, no MIDI
 
 
 
=== useq ===
 
* https://github.com/kfoltman/useq - Attempt at creating a very minimal MIDI sequence playback engine with live update capability
 
 
 
=== Musagi ===
 
* [http://www.drpetter.se/project_musagi.html Musagi] - original Windows a fairly large and sophisticated music editor and synthesizer
 
 
 
* [http://ludumdare.com/compo/2010/08/17/musagi-for-linux/ Musagi for Linux]
 
** https://bitbucket.org/stqn/musagi-stqn
 
 
 
=== gmorgan ===
 
* [http://gmorgan.sourceforge.net/ 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 ===
 
* [https://web.archive.org/web/20121120182539/http://stygmorgan.berlios.de stygmorgan]
 
* https://sourceforge.net/projects/stygmorgan.berlios/
 
 
 
=== SoftWerk ===
 
* [http://softwerk.sourceforge.net/ 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 ===
 
* https://web.archive.org/web/20140330093142/http://members.chello.nl/w.boeke/amuc/amuc-man.html
 
 
 
=== MidiMountain ===
 
* [http://www.midimountain.com/ 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 ===
 
* https://github.com/monotomy/CYTHAR-Sequenzer - A pattern-oriented, polyphonic MIDI step-sequencer, which makes its own path.
 
 
 
New version is B-Step Sequencer
 
 
 
* https://www.youtube.com/playlist?list=PLZCmwv5U3kDP-3jldIzOErbnBOdGjJV_M
 
 
 
 
 
=== qTribe ===
 
* [http://qtribe.sourceforge.net/ 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
 
 
 
* https://github.com/ViktorNova/qtribe
 
 
 
=== Dino ===
 
* [http://dino.nongnu.org/ 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
 
 
 
* https://github.com/ViktorNova/dino - abandoned fork
 
 
 
=== Slag ===
 
* [http://www.nongnu.org/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 ===
 
* [http://freebirth.sourceforge.net/ Freebirth] - a free software bass synthesizer / step sequencer / sample player for the linux operating system.
 
 
 
Basic, no save, fun.
 
 
 
* https://www.youtube.com/watch?v=I2uGq4KGVj8
 
 
 
 
 
 
 
=== Jazz++ MIDI Sequencer ===
 
* [http://jazzplusplus.sourceforge.net/ 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.
 
 
 
* YouTube: [https://www.youtube.com/watch?v=2aWSg2EFUSI Videogame Music Tutorial part 1: Writing MIDI files with Jazz++]
 
 
 
 
 
 
 
=== KeyKit ===
 
* [http://nosuch.com/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.
 
 
 
* [https://www.usenix.org/legacy/publications/compsystems/1990/spr_thompson.pdf Keynote -A Language and Extensible Graphic Editor for Music] - Tim Thompson AT&T Bell Laboratories, 1990
 
 
 
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 ===
 
* [http://www.zogotounga.net/GM/eGM0.html GeoMaestro] - An environment for experimental musical composition with MIDI and Csound, based on Tim Thompson's KeyKit
 
** http://www.zogotounga.net/GM/GMengintro.html
 
** http://www.zogotounga.net/GM/ArtBit/GMhandout.html
 
 
 
=== SuperCutSequencer ===
 
* https://github.com/sonejostudios/SuperCutSequencer - Cut "On/Off" Sequencer (8 steps with smooth) synced to Midi-Clock Beats and Midi-Clock Start/Stop
 
 
 
 
 
=== stepseq.lv2 ===
 
* https://github.com/x42/stepseq.lv2 - Midi Step Sequencer, 8x8 grid
 
 
 
=== Guitarix DrumSequencer ===
 
* https://linuxmusicians.com/viewtopic.php?f=48&t=17381
 
 
 
=== BloqSeq ===
 
* [http://www.xoxos.net/vst/vst.html#midi BloqSeq] - switches between four 8-step sequences using an 8-step pattern.
 
 
 
 
 
=== Series ===
 
* [http://www.xoxos.net/vst/vst.html#midi 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 ===
 
* [http://www.xoxos.net/vst/vst.html#midi 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 ===
 
* https://github.com/kohaerenzstifter/c/tree/master/kVstSequencer
 
 
 
 
 
=== CuSE ===
 
* [http://pi4.informatik.uni-mannheim.de/~haensel/cuse/index_en.html '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 ===
 
* [http://very.busted.systems/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 ===
 
* https://github.com/mreut/sequencer - MIDI Sequencer for Linux Terminal
 
 
 
=== sequencer ===
 
* https://github.com/hbkk/sequencer - ncurses jack midi sequencer.
 
 
 
=== STed ===
 
* [http://sted2.sourceforge.net/ 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 ===
 
* https://github.com/tomarus/midiseq
 
 
 
* YouTube: [https://www.youtube.com/watch?v=p_IkbFeEmdg React/Redux Web MIDI Sequencer, Router & Drum Machine]
 
 
 
=== Mish ===
 
* http://www.sreal.com/~div/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 ===
 
* http://www.songtive.com - Web sequencer with progressions
 
 
 
=== Molgav ===
 
* http://molgav.nn.ru - web, share
 
** http://molgav.nn.ru/rtfm
 
 
 
=== Sampulator.com ===
 
* [http://sampulator.com/ Sampulator.com] – make and record beats with your keyboard [https://news.ycombinator.com/item?id=10952724]
 
 
 
=== Políssonos ===
 
* [http://ruipenha.pt/works/ Políssonos] -  a loop-based midi sequencer that elicits the relation between the rhythmical division of time and the shapes of polygons. Website currently under revision, more info and download coming soon... Meanwhile, you can download it here: 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.
 
** http://www.synthtopia.com/content/2008/04/19/polissonos-a-free-loop-based-midi-sequencer
 
 
 
* Vimeo: [https://vimeo.com/853673 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 ===
 
* [http://defectiverecords.com/cyclic/index2.html 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 ===
 
* [http://jwm-art.net/o7.php?p=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 ===
 
* [http://jwm-art.net/o7.php?p=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 ===
 
* [http://audiocookbook.org/category/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.
 
 
 
* http://www.creativeapplications.net/mac/gestural-music-sequencer-processing-sound/
 
 
 
=== tracker ===
 
* https://github.com/pampa/tracker - Tracker, Sequencer and MIDI router. Native alsa-lib ruby bindings and a few examples how to use them.
 
** https://web.archive.org/web/20170208162048/http://kilimanjahro.com/2017-02-05-routing-midi-on-linux-with-a-ruby-script.html
 
** https://www.reddit.com/r/synthesizers/comments/5sdwkl/routing_midi_through_a_linux_box_with_alsa_some_c/
 
 
 
=== TSE3 ===
 
* [http://tse3.sourceforge.net/ 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 ===
 
* https://github.com/tnovelli/tritium - [PROTOTYPE] an experimental pattern-oriented Sequencer/DAW. dead?
 
 
 
 
 
=== Sequetron ===
 
* [http://myweb.tiscali.co.uk/philweb/philizound/freebies/software/sequetron/sequetron.html 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 ====
 
* http://studiopixel.sakura.ne.jp/pxtone/ - Windows
 
 
 
* http://pxtone.haru.gs/english
 
 
 
* http://pxtone.org/
 
 
 
* https://github.com/stkchp/pxtnplay
 
 
 
* http://www.gr87.com/?page_id=64
 
 
 
==== Sekaiju ====
 
* [http://openmidiproject.osdn.jp/Sekaiju_en.html 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 ====
 
* [http://www.angryredplanet.com/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 ====
 
* [http://www7a.biglobe.ne.jp/~mpc1000/jj-seq/ JJ-Sequencer] - Windows XP/7/8.1/10
 
 
 
=== Domino ===
 
* [http://takabosoft.com/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 ====
 
* http://b-step.monoplugs.com/ - $
 
 
 
==== Koushion ====
 
* http://www.koushion.com/ - iPad - $
 
 
 
== 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.
 
 
 
 
 
* https://en.wikipedia.org/wiki/Module_file#Scene
 
 
 
* https://en.wikipedia.org/wiki/Category:Tracker_musicians
 
 
 
* https://en.wikipedia.org/wiki/Music_tracker#Selected_list_of_music_trackers
 
 
 
* http://daily.redbullmusicacademy.com/2012/11/synth-aesthesia-trackers
 
 
 
 
 
* [https://trackerbase.blogspot.co.uk/ Ultimate Music Tracker Base] - Comprehensive database of music tracking software. Ultimate Soundtracker, ProTracker, Scream Tracker, Fast Tracker, Impulse Tracker, Renoise.
 
 
 
* [http://helllabs.org/tracker-history/ Tracker History Graphing Project] - Inspired by the UNIX History Graphing Project, the objective is to collect release dates and dependencies of music trackers and produce a graph of the lineage of music trackers in different operating systems.
 
** [http://helllabs.org/tracker-history/trackers.svg Current graph] - in SVG format
 
** https://github.com/cmatsuoka/tracker-history
 
 
 
* [http://garvalf.online.fr/index.php?page=articles_trackers Garvalf: Trackers]
 
 
 
 
 
* https://www.exotica.org.uk/wiki/.mod
 
 
 
 
 
* https://woolyss.com/tracking.php
 
 
 
* https://woolyss.com/tracking-trackers.php
 
 
 
* https://woolyss.com/tracking-trackers.php?s=Linux
 
 
 
 
 
=== Classic trackers ===
 
==== Soundtracker ====
 
* [http://www.soundtracker.org 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 ====
 
* https://www.exotica.org.uk/wiki/Quadra_Composer - Amiga
 
 
 
==== Impulse Tracker ====
 
* http://www.users.on.net/~jtlim/ImpulseTracker
 
** https://en.wikipedia.org/wiki/Impulse_Tracker - a multi-track digital sound tracker (music sequencer). Originally released in 1995 by Jeffrey Lim as Freeware with commercial extensions, it was one of the last tracker programs for the MS-DOS platform. Impulse Tracker was coded in Assembly language, and the interface was heavily influenced by that of Scream Tracker 3. In 2014, Impulse Tracker became open-source software when on the 20 year anniversary the source code was released.
 
** http://www.users.on.net/~jtlim/ImpulseTracker/features.html
 
 
 
* http://roartindon.blogspot.co.uk/2014/10/20-years-of-impulse-tracker-part-3.html [https://news.ycombinator.com/item?id=8478640]
 
** https://bitbucket.org/jthlim/impulsetracker
 
 
 
==== CheeseTracker ====
 
* [http://cheesetracker.sourceforge.net/ 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.
 
 
 
* http://reduz.com.ar/cheesetracker-shaketracker
 
 
 
=== Retro trackers ===
 
==== MilkyTracker ====
 
* [http://www.milkytracker.org/ MilkyTracker] - an multi-platform music application for creating .MOD and .XM module files. It attempts to recreate the module replay and user experience of the popular DOS program Fasttracker II, with special playback modes available for improved Amiga ProTracker 2/3 compatibility.
 
** https://github.com/Deltafire/MilkyTracker
 
** https://en.wikipedia.org/wiki/MilkyTracker
 
 
 
==== Adlib Tracker II ====
 
* [http://www.adlibtracker.net 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
 
** https://github.com/ijsf/at2
 
 
 
==== klystrack ====
 
* [https://kometbomb.github.io/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
 
 
 
* YouTube: [https://www.youtube.com/watch?v=NZU7x_RgoPU Propulse Tracker splash screen]
 
 
 
==== ChibiTracker ====
 
* https://sourceforge.net/projects/chibitracker.berlios - 2008. Windows/Linux.
 
** https://github.com/reduz/chibitracker - fork
 
** https://github.com/Monsterovich/chibitracker - fork
 
 
 
==== Hively Tracker ====
 
* [http://www.hivelytracker.co.uk/ 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
 
** https://github.com/pete-gordon/hivelytracker - Amiga OS/Windows/Haiku/MacOS/AROS/MorphOS
 
** YouTube: [https://www.youtube.com/watch?v=VFiaaDnpMvM Hivelytracker Tutorial]
 
 
 
* https://github.com/pete-gordon/planet-hively-wii - wii version
 
 
 
==== Prototracker ====
 
* [http://kometbomb.net/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
 
** https://github.com/kometbomb/prototracker
 
 
 
 
 
=== Modern trackers ===
 
==== Schism Tracker ====
 
* [http://schismtracker.org/wiki/Schism%20Tracker 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.
 
** https://github.com/schismtracker/schismtracker - active development
 
 
 
* YouTube: [https://www.youtube.com/watch?v=u3xHPIuX3s4 Purple Motion / FC - Starshine]
 
 
 
==== DefleMask ====
 
* [http://www.deflemask.com/ 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 ====
 
* [https://code.google.com/p/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.
 
** [http://www.pouet.net/prod.php?which=50409 Protrekkr v2.5.4]
 
 
 
* https://github.com/falkTX/protrekkr - fork of ProTrekkr, now with linux JACK Audio support.
 
** http://linuxsynths.com/ProtrekkrPatchesDemos/protrekkr.html
 
 
 
* http://paulbatchelor.github.io/proj/protrekkr/
 
* https://github.com/PaulBatchelor/protrekkr - fork of falkTX/ProTrekkr. Lots of code will be ripped out. Tears will be shed. Lua scripting (initial work), Sporth integration, Better commandline interface
 
 
 
==== PSYCLE ====
 
* [http://psycle.pastnotecut.org/portal.php 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)
 
** http://psycle.pastnotecut.org/stuff.php?action=about
 
** http://psycle.pastnotecut.org/stuff.php?action=docs
 
** http://sourceforge.net/projects/psycle - last updated 2017. Linux/Windows
 
 
 
* http://psycle.wikia.com/wiki/Main_Page
 
* https://en.wikipedia.org/wiki/Psycle
 
 
 
==== PixiTracker ====
 
* [http://www.warmplace.ru/soft/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 ====
 
* [https://bitbucket.org/paniq/jacker/wiki/Home 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
 
 
 
* https://github.com/harryhaaren/jacker - JACK capable MIDI tracker fork - Last commit 2013
 
 
 
* https://github.com/grejppi/jacker-fork - a continuation of Jacker by paniq https://bitbucket.org/paniq/jacker - Last commit 2011
 
 
 
==== Renoise ====
 
* [http://www.renoise.com/products/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. - $
 
 
 
* YouTube: [https://www.youtube.com/watch?v=pL_whEd-EnU&list=PLB7op_Ds1S5zE3Jk6EgK31qVfhaa76YkW Renoise 3 Beginner's Tutorial] - playlist
 
 
 
* YouTube: [https://www.youtube.com/watch?v=TNJzCaybzOk she - Prismatic (Played in Renoise DAW)]
 
 
 
* YouTube: [https://www.youtube.com/watch?v=Q0U7DLrDkkM 03 - use renoise as an infinite modular synthesizer]
 
 
 
* http://www.renoise.com/tools/live-dive
 
 
 
 
 
* http://www.neurogami.com/code/
 
 
 
=== Web trackers ===
 
==== WeTracker ====
 
* [http://www.wetracker.xyz 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.
 
** http://app.wetracker.xyz - demo
 
** https://github.com/pgregory/wetracker
 
 
 
==== Sonant Live ====
 
* [http://sonantlive.bitsnbites.eu 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 ====
 
* [http://www.stef.be/bassoontracker Bassoon Tracker] - Webbased old-school Amiga music tracker in plain old javascript - Plays and edits 4-channel Amiga Mod files
 
** https://github.com/steffest/bassoontracker
 
 
 
==== SoundBox ====
 
* https://github.com/mbitsnbites/soundbox - a tool for composing synthetic music, in your browser. Its design is basically that of a music tracker, which means that the music is organized in tracks and patterns. The latest version of SoundBox is served at: http://sb.bitsnbites.eu
 
 
 
==== Marabu ====
 
* [https://hundredrabbits.itch.io/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.
 
** https://github.com/hundredrabbits/Marabu - Built from SoundBox. Platforms: Windows, macOS, Linux
 
 
 
 
 
=== MIDI trackers ===
 
==== Tutka ====
 
* [http://www.nongnu.org/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 ====
 
* [http://fltracker.sourceforge.net/ FLTracker] - a tracker-style MIDI sequencer for linux.
 
** https://sourceforge.net/projects/fltracker/
 
 
 
==== ttrk ====
 
* [http://vektor.ca/audio/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 ====
 
* https://github.com/fundamental/ttrk - '''b-tektracker''' - an advanced MIDI step-sequencer. a fork of tektracker by Billy Biggs
 
 
 
==== TEQQER ====
 
* [https://github.com/fps/teqqer TEQQER] - The Console MIDI Tracker for the Nerdy Music Hacker. An ncurses/terminal based midi and CV signal tracker/sequencer.
 
 
 
==== MIDItrk ====
 
* [https://sourceforge.net/projects/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...
 
** https://github.com/localhost/MIDItrk - Git mirror of the MIDItrk project - a Tracker-style pattern-based MIDI composer by Hermit Software
 
 
 
 
 
=== Game Boy trackers ===
 
==== Little Sound Dj / LittleGPTracker ====
 
* [http://www.littlesounddj.com/lsd/ Little Sound Dj] - the Game Boy/Game Boy Color tool of choice for amateur & professional musicians and composers!
 
 
 
* [http://www.littlegptracker.com/ 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 ====
 
* [http://covertbitops.c64.org/ 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 ====
 
* http://hermit.sidrip.com/ -
 
 
 
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.
 
** YouTube: [https://www.youtube.com/watch?v=I6G0CnBSWVk&t=3m14s Calculator Music: HoustonTracker 2 for the TI-82/83/83+/84+]
 
 
 
=== PSP tracker ===
 
==== PSPSeq ====
 
* [http://dspmusic.org/psp/ 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.
 
** https://www.youtube.com/channel/UC2fPuYLL9m1XMyA7vImdFyg
 
 
 
 
 
=== Windows trackers ===
 
==== OpenMPT ====
 
* [http://openmpt.org/ OpenMPT] (short hand for Open ModPlug Tracker), a popular tracker software for Windows.
 
 
 
==== SVArTracker ====
 
* [http://www.svarsoft.com/svartracker.html 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 ====
 
* [http://www.berotracker.de 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.
 
** https://trackerbase.blogspot.co.uk/2014/01/blog-post_26.html
 
 
 
==== Aodix v4 ====
 
* [http://web.archive.org/web/20120809073944/http://www.aodix.com:80/pageaodixv4.html 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!)...
 
** https://rekkerd.org/arguru-software-sets-aodix-v4-free/ - undeveloped since 2007. Windows.
 
 
 
==== 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.
 
 
 
* https://github.com/m6502/ztrackerprime - up-to-date fork
 
 
 
==== FamiTracker ====
 
* [http://famitracker.com 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 ==
 
* https://en.wikipedia.org/wiki/Modular_software_music_studio
 
 
 
=== BEAST/BSE ===
 
* [https://testbit.eu/wiki/Beast_Home 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.
 
** https://github.com/tim-janik/beast
 
 
 
 
 
* https://testbit.eu/wiki/Beast_Features
 
 
 
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 ===
 
* [http://users.notam02.no/~kjetism/radium Radium] - a music editor with a new type of interface - Tracker-like but with waveforms instead of hex codes). Compared to the normal sequencer interface editing is quicker and more musical data fits on the screen. However, despite its unusual appearance, it's a design goal for Radium to be straightforward to use, and easy to learn. It should not be harder to learn Radium than any tracker or most midi sequencers. [https://news.ycombinator.com/item?id=9493536]
 
** https://github.com/kmatheussen/radium
 
** https://github.com/kmatheussen/radium/blob/master/Changelog
 
 
 
* [https://users.notam02.no/~kjetism/radium/forum/viewforum.php?f=7 Forum: General discussion]
 
 
 
* https://www.youtube.com/user/KjetilMatheussen/videos
 
 
 
=== SunVox ===
 
* [http://www.warmplace.ru/soft/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.
 
** http://www.warmplace.ru/wiki/sunvox:manual_en
 
 
 
Niiiiiice. Buzz like modular synth with tracker style sequencing. No integrated traditional piano roll.
 
 
 
 
 
* YouTube: [https://www.youtube.com/watch?v=g8wXJj6AD0A Beautiful instruments made of the basic SunVox modules]
 
 
 
* YouTube: [https://www.youtube.com/watch?v=PbHdmt1AdeQ
 
 
 
 
 
* [http://www.warmplace.ru/forum/viewforum.php?f=16 Warmplace SunVox forum]
 
 
 
* https://www.facebook.com/groups/sunvox
 
 
 
 
 
* https://github.com/warmplace/sunvox - Community-maintained mirror of SunVox distribution
 
 
 
* https://github.com/warmplace/sunvox_sources - Community-maintained mirror of source code for earlier versions of SunDog and SunVox Engine
 
 
 
=== Buzztrax ===
 
* [http://buzztrax.org/ 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.
 
** https://github.com/Buzztrax/buzztrax
 
 
 
* https://en.wikipedia.org/wiki/Buzztrax
 
 
 
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 ===
 
* [https://sourceforge.net/projects/aldrin/ 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 ===
 
* [https://sites.google.com/site/neilsequencer/home 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).
 
 
 
* https://en.wikipedia.org/wiki/Neil_(software)
 
 
 
* https://bitbucket.org/bucket_brigade/neil/overview - mercurial (hg). last updated 2013.
 
 
 
 
 
=== Windows ===
 
==== Buzz ====
 
* [http://jeskola.net/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.
 
** https://en.wikipedia.org/wiki/Jeskola_Buzz - Windows
 
 
 
* http://www.buzzmachines.com
 
 
 
* YouTube: [https://www.youtube.com/watch?v=ReBk2WFliig BPW000 - Jeskola Buzz Production Workflow - Rough Is Good (WIP)]
 
 
 
==== Buzé ====
 
* [http://batman.no/buze/ 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 ===
 
* http://loopjs.com
 
** https://github.com/mmckegg/loop-drop-app - MIDI looper, modular synth and sampler app built using Web Audio and Web MIDI APIs
 
 
 
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
 
 
 
* [https://github.com/BN701/MultiArp/blob/master/Doc/readmore.md MultiArp/Doc/readmore.md]
 
 
 
* '''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.
 
 
 
* [https://github.com/BN701/Multi-Arp/blob/master/Doc/command_ref.md Multi Arp Command and Menu Reference: Home]
 
** [https://github.com/BN701/MultiArp/blob/master/Doc/command_ref_misc.md General Commands]
 
** [https://github.com/BN701/MultiArp/blob/master/Doc/command_ref_pattern.md Pattern Commands]
 
 
 
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 ===
 
* [https://fuzzle.org/~petern/mloop.html 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 ===
 
* [https://code.google.com/p/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?
 
 
 
* YouTube: [https://www.youtube.com/watch?v=LJUae3NHkpA LiveLoop]
 
 
 
=== 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 ===
 
* https://github.com/tsoding/dimooper - Digital Music Looper application focused on live performance.
 
** [https://www.youtube.com/watch?v=qURmwdedUAI DIMOOPER DEMO #1]
 
 
 
Rust, somewhat buggy. Slow updates.
 
 
 
 
 
=== locoseq ===
 
* [https://code.google.com/archive/p/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 ===
 
* [http://tism.sourceforge.net/ 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.
 
** https://sourceforge.net/projects/tism/
 
 
 
 
 
=== MØØP ===
 
* [http://www.wiresundertension.com/soft 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
 
** http://www.wiresundertension.com/soft/doc/moop
 
 
 
== 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://cnmat.berkeley.edu/content/open-sound-control-11-encoding-specification
 
 
 
 
 
* 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.
 
 
 
 
 
* http://www.linuxjournal.com/content/introduction-osc
 
 
 
* http://joearms.github.io/2016/01/28/A-Badass-Way-To-Connect-Programs-Together.html [https://news.ycombinator.com/item?id=10976737]
 
 
 
* https://github.com/7890/osc_spec
 
 
 
 
 
* http://wiki.linuxaudio.org/apps/categories/osc
 
 
 
=== Programming ===
 
* [http://liblo.sourceforge.net 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.
 
** https://sourceforge.net/projects/liblo
 
 
 
* [http://www.rossbencina.com/code/oscpack 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://code.google.com/archive/p/oscpack/
 
 
 
* [http://fundamental-code.com/wiki/rtosc RtOSC] - Realtime Safe OSC packet serialization and dispatch
 
** https://github.com/fundamental/rtosc
 
 
 
* https://github.com/OpenMusicKontrollers/libosc - Tiny and fast OSC (Open Sound Control) C library
 
* https://github.com/OpenMusicKontrollers/libosc_stream - Tiny fast OSC (Open Sound Control) stream C library (UDP, TCP, IPv4, IPv6, 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.
 
 
 
* https://github.com/aberant/osc-ruby
 
 
 
* https://github.com/hoijui/JavaOSC
 
** https://github.com/7890/java_osc
 
 
 
 
 
* https://github.com/OpenMusicKontrollers/osc.lv2 - Open Sound Control Extension for the LV2 Plugin Specification
 
 
 
=== Utils ===
 
* [http://cnmat.org/OpenSoundControl/clients/sendOSC.html 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/CNMAT/CNMAT-OSC/tree/master/sendOSC
 
 
 
* 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/yoggy/sendosc - a simple command-line tool for sending OSC packet.
 
 
 
* 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.
 
 
 
* https://github.com/7890/sendkeys - sk, send every keystroke as OSC message
 
 
 
 
 
* https://github.com/teragonaudio/OscMonitor - Display OSC messages to standard output
 
 
 
* https://github.com/jhammen/OSCDisplay - Android app to display OSC messages
 
 
 
* https://github.com/OpenMusicKontrollers/oscfile - consists of two command line programs: 'oscrec' and 'oscplay'. As their names suggest, they record and playback Open Sound Control messages to and from files.
 
 
 
 
 
* [http://gareus.org/oss/osc/start udp repeater / dumper] - dump UDP data from a port to stdout, forward/relay UDP data to one or more UDP ports.
 
 
 
* https://github.com/sensestage/xosc - Generic OSC patchbay
 
 
 
* 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.
 
 
 
 
 
* http://trac.assembla.com/pkaudio/wiki/scosc - allows you to communicate via OSC messages with a supercollider server (scsynth).
 
 
 
* https://github.com/7890/aclock - text clock, control via OSC
 
 
 
 
 
* 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/OSCModulator/oscmodulator
 
 
 
 
 
* 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 ===
 
* [http://osc.ammd.net/ Open Stage Control] - a libre desktop OSC bi-directionnal control surface application. It's built with HTML, JavaScript & CSS and run as a Node / Electron web server that accepts any number of Chrome / Chromium / Electron clients.
 
** https://github.com/jean-emmanuel/open-stage-control
 
 
 
* 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.)
 
 
 
* https://github.com/bburdette/oscpad - a simple way to make a touchscreen control panel which you can access via web browser.
 
 
 
 
 
* [http://charlie-roberts.com/Control/ Control] - enables users to create their own interfaces for controlling musical, artistic and virtual reality applications. It is built on top of the PhoneGap project and allows users to define their interfaces via JSON files. The big advantages of Control over other touchscreen control apps are as follows: Outputs both wireless MIDI and OSC. Widgets are capable of being scripted via JavaScript. Access to Accelerometer, Gyro and Compass (in applicable devices). Interfaces can be dynamically pushed to the phone via OSC.
 
** https://github.com/charlieroberts/Control
 
** http://mountainbikesandtrombones.blogspot.co.uk/2014/12/jack-midi-control-from-your-android.html
 
 
 
* https://github.com/ahmetkizilay/AndrOSC - an Android app for creating and modifying OSC-compatible templates
 
** https://play.google.com/store/apps/details?id=com.ahmetkizilay.controls.androsc
 
 
 
* 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.
 
 
 
* [https://sourceforge.net/projects/oscontrol/ 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.
 
 
 
* [https://www.touchosc.co.uk/ TouchOSC] - Modular OSC and MIDI control surface for iPhone / iPod Touch / iPad - $
 
** http://hexler.net/software/touchosc
 
 
 
* http://livecontrol.q3f.org/ - TouchOSC Ableton Live controller template
 
 
 
* https://github.com/velolala/touchosc2midi
 
 
 
 
 
* http://frieslandav.com/xtension_osc.php - Windows/Mac - $
 
 
 
* http://imimot.com/vezer/ - $
 
 
 
=== Sequencing ===
 
* http://i-score.org/
 
** https://github.com/OSSIA/i-score
 
 
 
* https://github.com/jean-emmanuel/seqzero
 
 
 
* https://github.com/kuflex/KuStudio - an open source OSC editor, recorder and player, aimed to create timeline on an audiotrack. Windows/Mac
 
 
 
* https://github.com/jean-emmanuel/seqzero - minimalist headless osc sequencer that does the job. It is written in python, you'll need to write some simple code to set it up.
 
 
 
* https://github.com/JohannesLorenz/minimal
 
 
 
* https://github.com/cannoneyed/fiddle
 
 
 
=== 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
 
 
 
* https://github.com/jstutters/MidiOSC - a small program to bridge the worlds of MIDI and OSC by providing bidirectional conversion of MIDI to OSC.  Released under the GPLv2 license.
 
 
 
 
 
* https://github.com/ssj71/OSC2MIDI
 
 
 
* https://bitbucket.org/agraef/osc2midi-utils
 
 
 
 
 
* https://github.com/jean-emmanuel/midi2osc
 
 
 
* https://github.com/x42/jackmidi2osc
 
 
 
 
 
* [https://open-music-kontrollers.ch/lv2/eteroj/ 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.
 
 
 
 
 
* [http://www.illucia.com/software/ 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.
 
 
 
 
 
* https://github.com/original-male/non/blob/60059f40054db40a77754670cdae2e9517df3568/mixer/src/midi-mapper.C - Non Session Manager MIDI to OSC mapper (used with nsm-proxy in nsm)
 
 
 
=== Hardware ===
 
* https://sourceforge.net/projects/sysexoscgen/ - A Sysex OSC hex string generator for the X32/X-Air digital mixers
 
 
 
* https://github.com/chris-kuhr/midi-sysex-osc-gateway - Remote Control for Yamaha Digital Mixers
 
 
 
== Drum machine sampler/sequencer ==
 
* http://linux-sound.org/drum.html
 
 
 
=== Hydrogen ===
 
* [http://www.hydrogen-music.org/hcms/ Hydrogen] is an advanced drum machine for GNU/Linux. It's main goal is to bring professional yet simple and intuitive pattern-based drum programming.
 
** https://github.com/hydrogen-music/hydrogen
 
 
 
 
 
* [https://musical-artifacts.com/artifacts?formats=h2drumkit musical-artifacts.com: h2drumkit] - kit sounds
 
 
 
 
 
* https://github.com/hydrogen-music/Song-and-pattern-repository
 
 
 
 
 
* http://wiki.linuxaudio.org/wiki/script_midi2hydrogen - Convert midi drums to *.h2song hydrogen drum sequencer format
 
 
 
* [https://github.com/rock-hopper/makeh2kit 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 ===
 
* [http://www.ordrumbox.com/ 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 ===
 
* [https://bitbucket.org/olivierg/jackbeat/wiki/Home 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 ===
 
* [http://www.nongnu.org/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 ===
 
* [http://web.archive.org/web/20090206030705/http://www.blackholeprojector.com/ 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.
 
** [http://archive.is/obmx6 Breakage – a machine learning drum machine] - ChucK, OSC and JOONE, a component based neural network framework built in Java. 2008.
 
 
 
=== pyTrommler===
 
* [http://muth.org/Robert/pyTrommler/ pyTrommler] - A Python/GTK/SDL based drum machine
 
 
 
=== Groovit ===
 
* [http://groovit.disjunkt.com/main.html 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.
 
** http://groovit.disjunkt.com/groovit.scr.html
 
 
 
=== Gneutronica ===
 
* [http://gneutronica.sourceforge.net/ 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 ===
 
* [https://fultron.net/fultron_2002.shtml Fultron 2002] is a cross platform, open source drum machine. It's sample-based and supports themes.
 
** https://sourceforge.net/projects/fultron - 0.7, 2002
 
 
 
=== TK-707 ===
 
* [http://www-ljk.imag.fr/membres/Pierre.Saramito/tk707/ 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 ===
 
* [http://www.panix.com/~asl2/music/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 ===
 
* [http://www.metadecks.org/software/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 ===
 
* [http://www.linux-france.org/prj/drumpatterns/index-en.html 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 ===
 
* [http://edrummer.sourceforge.net/ 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.).
 
** https://sourceforge.net/projects/edrummer/
 
 
 
=== edrummer live ===
 
* https://sourceforge.net/projects/edrummer-live/
 
 
 
=== Snare ===
 
* [https://launchpad.net/snare Snare] - A minimalistic drum machine created for Ubuntu App Showdown contest
 
** https://www.youtube.com/watch?v=N8z00dfJIJQ
 
 
 
=== LDRUM ===
 
* [https://web.archive.org/web/20060831040515/http://www.sinussource.de/ldrum/#features  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;)
 
** https://sourceforge.net/projects/ldrum/
 
 
 
=== Text file sequencer ===
 
==== Beats ====
 
* [http://beatsdrummachine.com/ 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.
 
** https://github.com/jstrait/beats
 
 
 
==== droguedrums ====
 
* [http://www.noisy-toys.de/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 ====
 
* [http://drumpiler.sourceforge.net/ Drumpiler] - the Compiled Drum Machine. Copyright (C) 2003 by Stefano Maini (a.k.a.Sty)
 
 
 
==== jdkdrum ====
 
* [http://www.jdkoftinoff.com/main/Free_Projects/Drum_Synth_For_Linux/ 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 ====
 
* https://github.com/simonnorberg/dmach Dmach - drum machine for Android with 6 channels, a 16 step sequencer and real-time sound synthesis.
 
 
 
=== Mac ===
 
==== MiniSpillage ====
 
* [http://www.audiospillage.com/minispillage.html MiniSpillage]
 
 
 
==== Ba-Dum-Tss Machine ====
 
* [https://ccrma.stanford.edu/~trijeetm/ba-dum-tss/ 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 ====
 
* [http://www.vst4free.com/free_vst.php?id=1044 Percumat 2] - a versatile Rhythm machine for backing drums percussion - "definitively not an 808 or 909 type thingie". Windows VST.
 
 
 
==== Cubix ====
 
* [http://www.psychicmodulation.com/plugins.html 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 ====
 
* [http://www.psychicmodulation.com/plugins.html 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 ===
 
* http://aerodrums.com/aerodrums/ - $
 
 
 
== Audio and MIDI looping ==
 
=== Giada ===
 
* [http://www.giadamusic.com/ 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.
 
** https://github.com/monocasual/giada
 
 
 
* https://www.giadamusic.com/documentation
 
 
 
* YouTube: [https://www.youtube.com/channel/UCAAZJ9SX0RZ9AiAToF6ebjA Giada LoopMachine]
 
** [https://www.youtube.com/watch?v=dYKxUZgsB-o Giada tutorial #8 - Loop modes overview]
 
** [https://www.youtube.com/watch?v=UN7Uq9Kahqw Giada tutorial #3 - The action editor]
 
 
 
 
 
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.
 
 
 
* https://github.com/monocasual/giada-midimaps
 
 
 
== Soundscape ==
 
=== Boodler ===
 
* [http://boodler.org/ 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.
 
** https://github.com/ziz/boodler
 
 
 
* YouTube: [https://www.youtube.com/watch?v=x_DDXsCPGOA Owen Williams - Advanced Soundscapes with Boodler]
 
 
 
=== SoundScape Renderer ===
 
* [http://spatialaudio.net/ssr/ SoundScape Renderer] (SSR) is a tool for real-time spatial audio reproduction providing a variety of rendering algorithms, e.g. Wave Field Synthesis, Higher-Order Ambisonics and binaural techniques. The SSR is currently available for GNU/Linux and Mac OS X and has been released as open source software under the GNU General Public License (GPL). It is developed at Quality and Usability Lab/TU Berlin (http://qu.tu-berlin.de/) and at Institut für Nachrichtentechnik/Universität Rostock (http://www.int.uni-rostock.de/).
 
** https://github.com/SoundScapeRenderer/ssr
 
 
 
=== Klangwunder3000 ===
 
* https://github.com/bk138/klangwunder3000/ - a cross-platform soundscape generator. It loads a set of sound files and associated control data and generates a constantly changing aural ambient.
 
 
 
=== 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 [https://louigiverona.com/?page=projects&s=writings&t=linux&a=linux_randomhouse 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 ===
 
* https://ambient-mixer.com
 
 
 
 
 
* [https://mynoise.net/noiseMachines.php myNoise] - background noises and relaxing soundscape generator, web/app
 
 
 
 
 
== Sonification ==
 
* https://en.wikipedia.org/wiki/Sonification
 
 
 
 
 
* http://soundobject.org/SObBook/SObBook_JUL03.pdf
 
 
 
* http://sonification.de/handbook/
 
 
 
== 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/Algorithmic_music
 
 
 
 
 
* https://en.wikipedia.org/wiki/Generative_music
 
 
 
 
 
* 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 ===
 
* [https://web.archive.org/web/20171207141423/http://www.algorithmic.net 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.
 
** [https://web.archive.org/web/20170324074814/http://www.algorithmic.net:80/systems Algorithmic Systems]
 
 
 
 
 
* [http://www.algorithmiccomposer.com/ Algorithmic Composer]
 
** [http://www.algorithmiccomposer.com/p/algorithmic-composition-getting-started.html Getting Started with Algorithmic Composition]
 
 
 
 
 
* [http://proceduralaudionow.com/ 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.'
 
 
 
* [http://www.rationalargumentator.com/index/blog/2015/06/variations-minuet-mozart/ Variations on a Randomly Generated Minuet and Trio by Wolfgang Amadeus Mozart, Op. 81 (2015) &#8211; Musical Composition and Video by G. Stolyarov II &#8211]
 
 
 
 
 
* 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.
 
 
 
 
 
 
 
* [http://www.cim.mcgill.ca/~clark/nordmodularbook/nm_algorithmic.html Chapter 10. Algorithmic Composition] - Advanced Programming Techniques for Modular Synthesizers
 
 
 
* [https://sourceforge.net/p/musicalgorithm1 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.
 
 
 
 
 
* [http://artsites.ucsc.edu/faculty/cope/experiments.htm Experiments in Musical Intelligence] - David Cope, 1984
 
 
 
* PDF: [http://www.hsc.edu/Documents/academics/MathCS/Pendergrass/recursiveMelodies.pdf Patterns and Schemes for Algorithmic Composition] - Marcus Pendergrass, Dec 8, 2014
 
 
 
* PDF: [http://www.dmu.ac.uk/documents/technology-documents/research/mtirc/nowalls/mww-collins.pdf Algorithmic Composition Methods for Breakbeat Science] - Nick Collins, Middlesex University
 
 
 
* [https://www.researchgate.net/publication/220664252_Algorithmic_compositions_based_on_discovered_musical_patterns Algorithmic compositions based on discoveredmusical patterns] - Man-Kwan Shan &Shih-Chuan Chiu
 
 
 
* PDF: [http://www.speech.kth.se/prod/publications/files/3822.pdf
 
 
 
* [http://www.aaai.org/ocs/index.php/AIIDE/AIIDE13/paper/download/7443/7666 The Generative Electronic Dance Music Algorithmic System (GEDMAS)]
 
 
 
* [http://metacreation.net/gerp/ 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?
 
 
 
 
 
 
 
 
 
 
 
 
 
* [http://rythmaidgui.sourceforge.net 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.
 
 
 
 
 
 
 
 
 
 
 
* [http://soundhelix.com/ 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.
 
 
 
* [http://computoser.com/ Computoser] is an "artificial intelligence" algorithm that turns the computer into a music composer. Each track you hear is algorithmically generated.
 
** http://techblog.bozho.net/generating-music/
 
 
 
* [http://musicalgorithms.ewu.edu/ 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.
 
 
 
 
 
 
 
* [https://www.ibm.com/developerworks/java/library/j-camusic/ 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.
 
 
 
* [http://ccrma.stanford.edu/~colinsul/projects/jnana 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.
 
** https://github.com/colinsullivan/Jnana
 
 
 
 
 
 
 
 
 
* [http://www.eecs.qmul.ac.uk/~sturm/research/RNNIrishTrad The Endless folk-rnn Traditional Music Session]
 
** https://github.com/IraKorshunova/folk-rnn - Python
 
** https://highnoongmt.wordpress.com
 
** https://highnoongmt.wordpress.com/2015/08/15/deep-learning-for-assisting-the-process-of-music-composition-part-4/
 
 
 
* [https://maraoz.com/2016/02/02/abc-rnn/ Training a Recurrent Neural Network to Compose Music] - using ABC
 
 
 
* [http://composerprogrammer.com/infno.html 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.
 
 
 
 
 
* [http://www.vice.com/read/algorave-is-the-future-of-dance-music-if-youre-an-html-coder  'Algorave' Is the Future of Dance Music (if You're a Nerd)] [https://news.ycombinator.com/item?id=6808744]
 
 
 
 
 
* [http://entropedia.co.uk/generative_music/#b64K9HS0Cixs7OsARKGxppqRqZqQJaZJgA%3D 8-bit Generative Composer - entropedia.co.uk]
 
 
 
* [http://nautil.us/issue/21/information/how-i-taught-my-computer-to-write-its-own-music How I Taught My Computer to Write Its Own Music] [https://news.ycombinator.com/item?id=9044327]
 
 
 
* [http://neuralnoise.co/ Neural Noise] - generates music snippets from the output of a Recurrent Neural Network (char-rnn). The networks (there are multiple to choose from below) were trained on a few thousand pop songs and take input and output in abc notation
 
** http://neuralnoise.co/readmore.html
 
** https://github.com/audiodude/neural-noise
 
 
 
* [https://sourceforge.net/projects/tapis/ 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.
 
 
 
* [https://sourceforge.net/projects/cycle-plus-one/ 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.
 
 
 
* [http://gramophone2.sourceforge.net/ 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.
 
 
 
* [http://www.michael-edwards.org/sc/ slippery chicken] is an open-source Common Lisp environment for declarative or generative algorithmic composition building on CLM, CMN, CM, and Lilypond for score, sound file, and/or MIDI file outputs and the integration of these into closely aligned hybrid acoustic-electronic pieces of music.
 
** http://cacm.acm.org/magazines/2011/7/109891-algorithmic-composition/fulltext
 
 
 
* https://github.com/jisungk/deepjazz [https://news.ycombinator.com/item?id=11520736]
 
 
 
 
 
* http://julianrosenblum.com/sharp11-client [https://news.ycombinator.com/item?id=11697418]
 
** https://github.com/jsrmath/sharp11
 
 
 
* https://maraoz.com/2016/02/02/abc-rnn/ [https://news.ycombinator.com/item?id=12332933]
 
 
 
 
 
 
 
* http://djen.co/ [https://news.ycombinator.com/item?id=12014663]
 
** https://github.com/RossMcMillan92/djent
 
 
 
 
 
* [http://grammidity.sourceforge.net 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.
 
** https://sourceforge.net/projects/grammidity
 
 
 
* https://getinspired.mit.edu/sites/default/files/documents/MU208_Report.pdf [https://news.ycombinator.com/item?id=13189310]
 
 
 
* [https://sourceforge.net/projects/cycle-plus-one/ 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.
 
 
 
 
 
 
 
* http://bolprocessor.sourceforge.net/#Resources - mac midi
 
 
 
 
 
* [http://phase.sourceforge.net/ 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!
 
 
 
 
 
 
 
 
 
* [http://jchordbox.sourceforge.net 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 …).
 
 
 
 
 
* http://www.cs.uni-potsdam.de/chasp/
 
 
 
 
 
* https://github.com/igorski/molecular-music-generator
 
 
 
* https://github.com/wibblymat/ld24/blob/master/autotracker.py
 
 
 
 
 
* 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 ===
 
* [http://countercomplex.blogspot.co.uk/2011/10/algorithmic-symphonies-from-one-line-of.html  Algorithmic symphonies from one line of code -- how and why?] [https://news.ycombinator.com/item?id=3063359]
 
* [http://countercomplex.blogspot.co.uk/2011/10/some-deep-analysis-of-one-line-music.html  Some deep analysis of one-line music programs.]
 
 
 
* https://github.com/kragen/viznut-music - a collection of the programs from Algorithmic symphonies from one line of code -- how and why
 
 
 
* http://wurstcaptures.untergrund.net/music
 
* http://www.olegkikin.com/audio/audio.html
 
 
 
=== BackupBand ===
 
* [https://sourceforge.net/projects/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.
 
** [https://linuxmusicians.com/viewtopic.php?f=1&t=17875 BackupBand] - LinuxMusicians forum thread
 
 
 
=== PureData ===
 
* [http://patchwerk.rumblesan.com/ PatchWerks] - A PureData based generative music internet radio station
 
** https://github.com/rumblesan/PatchWerk-Radio
 
 
 
 
 
 
 
 
 
 
 
=== Tensorflow ===
 
* https://github.com/burliEnterprises/tensorflow-music-generator
 
** https://medium.com/@m_ko/deep-learning-with-tensorflow-part-3-music-and-text-generation-370cf37bb071
 
** https://www.youtube.com/watch?v=5wZIQ9XHNns
 
 
 
* https://github.com/tensorflow/magenta/blob/master/magenta/interfaces/midi/README.md - This interface allows you to connect to a model generator via a MIDI controller and synthesizer. These can be either "hard" or "soft" components. Note that you can only interface with a trained models that have a SequenceGenerator defined for them.
 
 
 
* https://magenta.tensorflow.org/welcome-to-magenta https://news.ycombinator.com/item?id=11827781
 
 
 
 
 
=== 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.
 
 
 
 
 
* [http://darwintunes.org/  DarwinTunes] - 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. Perl.
 
** https://github.com/bobular/DarwinTunes
 
** https://en.wikipedia.org/wiki/DarwinTunes
 
** [http://www3.imperial.ac.uk/newsandeventspggrp/imperialcollege/newssummary/news_23-11-2009-16-10-48 DarwinTunes: take part in an experiment to find out if culture evolves by natural selection] - Imperial researchers to track the evolution of music online, 23 Nov 2009
 
** https://soundcloud.com/uncoolbob/sets/darwintunes
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
=== Windows VST ===
 
* [http://www.kvraudio.com/product/cube_breath_by_xoxos/details 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".
 
 
 
 
 
 
 
* [http://www.kvraudio.com/product/breath_cube_by_xoxos/details 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 ===
 
* http://nodalmusic.com - Windows and Mac - $
 
** https://en.wikipedia.org/wiki/Nodal_(software)
 
 
 
 
 
* https://intermorphic.com/sseyo/
 
 
 
* [http://intermorphic.com/mixtikl/ 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. - $
 
 
 
* [http://intermorphic.com/noatikl/ 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]]
 
 
 
* http://audiour.com/
 
 
 
* https://audioboo.fm/
 
 
 
* http://vocaroo.com/
 
 
 
* http://scmplayer.net/
 
 
 
* http://picosong.com/
 
 
 
=== Background ===
 
* http://www.rainymood.com/
 
* http://mynoise.net/
 
* http://www.coffitivity.com/
 
* http://rainycafe.com/
 
* http://simplynoise.com/
 
* http://www.noisli.com/
 
* http://naturesoundsfor.me/
 
* http://timeforzen.com/
 
* http://raining.fm/
 
* http://asoftmurmur.com/ [https://news.ycombinator.com/item?id=6975538]
 
 
 
== Jamming ==
 
=== NINJAM ===
 
* [http://www.cockos.com/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.
 
 
 
* https://github.com/justinfrankel/ninjam
 
 
 
 
 
* [https://github.com/wahjam/wahjam/wiki Wahjam] - a fork of NINJAM and remains compatible with the network protocol. It also includes support for the jammr online jamming platform.
 
 
 
* https://github.com/bill-auger/webjam - A NINJAM client with javascript frontend. Based on the original NINJAM ncurses source.
 
 
 
* [http://jamtaba-music-web-site.appspot.com 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!
 
** https://github.com/elieserdejesus/JamTaba
 
 
 
 
 
* http://autosong.ninjam.com/server-list.php
 
 
 
* http://ninbot.com/ - Jam online with musicians from around the world. Record and share your sessions.
 
 
 
* http://ninjamer.com:15000/
 
 
 
* https://jammr.net/ - wahjam based
 
 
 
 
 
* [http://peter.drealm.info/angularjs 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 ===
 
* https://github.com/bill-auger/TeamStream TeamStream allows musicians to play music together over the internet. It is based on the excellent NINJAM softwares (http://ninjam.com) and allows free-form improvisation in the standard multi-directional NINJAM configuration or more structured performances in a linear chain-streaming configuration. Visit the TeamStream homepage (http://teamstream.herokuapp.com) for details.
 
 
 
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 ==
 
* http://www.freetuner.co/ [https://news.ycombinator.com/item?id=7279412]
 
 
 
* http://deibelman.github.io/dart-mic/demo.html#
 
 
 
* http://www.audionotch.com/app/tune/
 
 
 
* [http://gillesdegottex.github.io/fmit/ FMIT] (Free Music Instrument Tuner) is a graphical utility for tuning your musical instruments, with error and volume history and advanced features.
 
 
 
* [http://www.nongnu.org/lingot/ 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.
 
 
 
* http://gtdb.org/
 
 
 
* http://www.tallkite.com/alt-tuner.html
 
 
 
* [http://x42-plugins.com/x42/x42-tuner x42-tuner] - aka Tuna.LV2, an musical instrument tuner with strobe characteristics in LV2 plugin format.
 
** https://github.com/x42/tuna.lv2
 
 
 
* 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.
 
 
 
* https://www.meldaproduction.com/MTuner
 
 
 
== Speech ==
 
=== Recognition ===
 
* http://en.wikipedia.org/wiki/Speech_recognition_in_Linux
 
 
 
* http://www.honeytechblog.com/12-useful-speech-recognition-applications-available-for-linux/
 
* http://linuxpoison.blogspot.co.uk/2009/04/voice-control-your-ubuntu-desktop.html
 
 
 
* http://cmusphinx.sourceforge.net/
 
** http://cmusphinx.sourceforge.net/wiki/
 
** https://github.com/syl22-00/pocketsphinx.js
 
 
 
* http://chrislord.net/index.php/2016/06/01/open-source-speech-recognition/ [https://news.ycombinator.com/item?id=11820490]
 
 
 
* [http://antiboredom.github.io/audiogrep/ 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. [https://news.ycombinator.com/item?id=9159115]
 
 
 
* [http://simon.kde.org/ 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.
 
 
 
* [http://www.jezra.net/projects/blather Blather] is a speech recognizer that will run commands when a user speaks preset sentences.
 
** [https://www.youtube.com/watch?v=gr1FZ2F7KYA Intro to Blather: Speech Recognition for Linux]
 
 
 
* [http://kaldi-asr.org/ Kaldi Speech Recognition Toolkit] [https://news.ycombinator.com/item?id=12773218]
 
** https://github.com/kaldi-asr/kaldi
 
** https://github.com/alumae/kaldi-gstreamer-server
 
 
 
* [https://github.com/rob-mccann/Pi-Voice Pi-Voice] - The beginnings of a Star Trek-like computer. Run the program, speak into your microphone and hear the response from your speakers.
 
 
 
* https://github.com/benoitfragit/pocketVox
 
** http://cmusphinx.sourceforge.net/2014/11/pocketvox-is-listening-you/
 
 
 
* [https://wit.ai/ 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.
 
 
 
 
 
 
 
* https://cloud.google.com/speech/ [https://news.ycombinator.com/item?id=11347872]
 
 
 
* https://news.ycombinator.com/item?id=13037063
 
 
 
 
 
* https://github.com/alexa-pi/AlexaPi
 
 
 
=== Synthesis ===
 
* http://en.wikipedia.org/wiki/Speech_synthesis
 
 
 
to sort/categorise
 
 
 
==== rsynth ====
 
* [http://rsynth.sourceforge.net/ rsynth] - Text-to-Speech.
 
** https://github.com/rhdunn/rsynth - fork
 
** YouTube: [https://www.youtube.com/watch?v=KlcQ0LsLOdA Virtualized dragging brake equipment detector using rsynth]
 
 
 
==== Festival ====
 
* [http://www.cstr.ed.ac.uk/projects/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 ====
 
* [http://festvox.org/ 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 ====
 
* [http://mary.dfki.de/ 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 ====
 
* [http://espeak.sourceforge.net/ 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 ====
 
* http://web.media.mit.edu/~stefanm/osss/
 
 
 
==== MBROLA ====
 
* http://tcts.fpms.ac.be/synthesis/ - The MBROLA Project
 
** http://en.wikipedia.org/wiki/MBROLA
 
 
 
 
 
==== Assistive Context-Aware Toolkit ====
 
* [https://01.org/acat Assistive Context-Aware Toolkit (ACAT)] - an open source platform developed at Intel Labs to enable people with motor neuron diseases and other disabilities to have full access to the capabilities and applications of their computers through very constrained interfaces suitable for their condition.  More specifically, ACAT enables users to easily communicate with others through keyboard simulation, word prediction and speech synthesis. Users can perform a range of tasks such as editing, managing documents, navigating the Web and accessing emails. ACAT was originally developed by researchers at Intel Labs for Professor Stephen Hawking, through a very iterative design process over the course of three years.
 
** http://blogs.msdn.com/b/cdndevs/archive/2015/08/14/intel-just-open-sourced-stephen-hawking-s-speech-system-and-it-s-a-net-4-5-winforms-app.aspx [https://news.ycombinator.com/item?id=10072188]
 
 
 
==== Praat ====
 
* [http://www.fon.hum.uva.nl/praat/ Praat] - doing phonetics by computer
 
 
 
==== Gnuspeech ====
 
* [https://www.gnu.org/software/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. [https://news.ycombinator.com/item?id=10421776]
 
 
 
==== Project Merlin ====
 
* [http://projectmeilin.github.io/en/ Project Merlin] - A truly free virtual singer, no matter how you want to send all kinds of ideas. [https://linuxmusicians.com/viewtopic.php?f=48&t=15540]
 
** https://github.com/ProjectMeilin - not fully open yet?
 
** http://www.cstr.ed.ac.uk/projects/merlin/
 
** http://ml.cs.yamanashi.ac.jp/world/english
 
** YouTube: [https://www.youtube.com/watch?v=vL9MW28bIJI UTAU】Honeyworks ママ ver.acoustic 【徵音梅林cover】]
 
** YouTube: [https://www.youtube.com/watch?v=_t1OP0ECjHE 【徴音梅林】Umbrella カバー]
 
 
 
==== mesing ====
 
* https://github.com/usdivad/mesing
 
 
 
==== Adobe VoCo ====
 
* https://en.wikipedia.org/wiki/Adobe_Voco
 
* https://arstechnica.com/information-technology/2016/11/adobe-voco-photoshop-for-audio-speech-editing/ [https://news.ycombinator.com/item?id=12892063]
 
** https://www.youtube.com/watch?v=I3l4XLZ59iw
 
 
 
==== VST Speek ====
 
* http://blog.wavosaur.com/text-to-speech-vst-vst-speek/
 
** [http://blog.wavosaur.com/vst-speek-beta-for-linux/ VST Speek beta for Linux]
 
 
 
==== char2wav ====
 
* https://mila.umontreal.ca/en/publication/char2wav-end-to-end-speech-synthesis/ [https://news.ycombinator.com/item?id=13702243]
 
 
 
==== loop ====
 
* https://github.com/facebookresearch/loop
 
 
 
 
 
==== IPOX ====
 
* [http://www.phon.ox.ac.uk/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 ===
 
 
 
* [http://jasperproject.github.io/ Jasper] is an open source platform for developing always-on, voice-controlled applications
 
[https://news.ycombinator.com/item?id=7546858]
 
** https://github.com/jasperproject/jasper-client
 
** http://hackaday.com/2014/04/09/create-your-own-j-a-r-v-i-s-using-jasper/
 
 
 
* http://www.acapela-group.com/
 
 
 
 
 
=== Analysis ===
 
==== ESPS ====
 
 
 
* http://www.speech.cs.cmu.edu/comp.speech/Section1/Labs/esps.html
 
 
 
* [http://www.phon.ox.ac.uk/releases 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.
 
 
 
 
 
* https://github.com/jeremysalwen/ESPS - This archive contains source files from the ESPS toolkit.
 
 
 
==== NICO toolkit ====
 
* [http://nico.nikkostrom.com 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 ====
 
* [http://www.speech.kth.se/hat/ Higgins Annotation Tool] - can be used to transcribe and annotate speech with one or more audio tracks (such as dialogue). Windows.
 
 
 
== Binaural beats ==
 
* http://gnaural.sourceforge.net/
 
 
 
* http://discord.sourceforge.net/
 
 
 
* http://entrainer.sourceforge.net/
 
 
 
 
 
* http://bs2b.sourceforge.net/
 
** https://github.com/nilninull/bs2b-lv2
 
 
 
* [http://uazu.net/sbagen/ SBaGen] -- Sequenced Binaural Beat Generator
 
** http://uazu.net/sbagen/sbagen.txt
 
** http://sbagen.sourceforge.net/
 
 
 
* http://www.normalesup.org/~george/comp/binaural_player - Android
 
 
 
 
 
* http://bs2b.sourceforge.net/
 
 
 
== Video ==
 
See also [[Video]]
 
  
* [http://xjadeo.sourceforge.net/ 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.
 
 
 
* https://news.ycombinator.com/item?id=12041792
 
 
 
* http://www.365dagenkunst.nl/2011/youtube-sequencer/
 
  
 +
== Other ==
 +
* https://github.com/ggerganov/kbd-audio - Tools for capturing and analysing keyboard input paired with microphone capture [https://news.ycombinator.com/item?id=18568795]
  
== Gaze ==
 
  
  
* http://theeyeharp.org
+
* [https://imgur.com/a/eWbBK Volume "control". - Album on Imgur] - [https://lobste.rs/s/irfezu/album_volume_sliders_from]
** https://www.upf.edu/web/mtg/the-eyeharp
 
** https://github.com/zackbam/TheEyeHarp
 
** YouTube: [https://www.youtube.com/watch?v=4W7fkqbkXzE Yesterday, the Beatles. EyeHarp Cover]
 
  
== Games ==
 
* http://fractgame.com/
 
  
== Logging ==
 
* http://www.last.fm
 
** http://www.last.fm/group/Sites+that+scrobble+to+Last.fm
 
  
== Apps ==
+
* https://en.wikipedia.org/wiki/ReWire_(software_protocol) - a software protocol, jointly developed by Propellerhead and Steinberg, allowing remote control and data transfer among digital audio editing and related software. Originally appearing in the ReBirth software synthesizer in 1998, the protocol has since evolved into an industry standard. Currently used in macOS and Microsoft Windows 32-bit or 64-bit audio applications, ReWire enables the simultaneous transfer of up to 256 audio tracks of arbitrary resolution and 4080 channels of MIDI data. This allows, for example, the output from synthesizer software to be fed directly into a linear editor without the use of intermediate files or analog transfers. There are also provisions to remotely trigger actions, such as starting and stopping recording. The protocol is licensed free of charge to companies only, but comes with a "non-disclosure of source code" license that is incompatible with most free-software licenses. The ReWire system consists of "Hosts", "Panels", and "Devices". Hosts are the host applications which typically do the sequencing at one end and the final mixdown at the other end. A Device is a dynamic link library that only generates sound; it has no user interface. A Panel is a graphical interface for setting the parameters of one Device. A typical setup would be to use Ableton Live in "Host" mode, and use Propellerhead Reason as a synthesizer. In this case Reason would provide Device/Panel pairs to Ableton, which could then send midi commands, sync timing and mix Reason's output into its own effects chains. Many applications support either mode. In fact, an application could (at the discretion of a developer) act as both a Host and a Panel at the same time.
* [http://augment.audio 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 ==
 
* http://www.vgmpf.com/Wiki/index.php?title=Category:Editors
 
  
== macOS ==
 
* http://www.macmusic.org/home/?lang=en
 
  
* [http://arvidtp.net/guidex.php Arvid Tomayko's Guide To Free Mac Music Software]
+
* [https://goq2q.net/blog/tech/using-ascii-waveforms-to-test-real-time-audio-code Using ASCII waveforms to test real-time audio code - Q2Q] - [https://news.ycombinator.com/item?id=28855654]

Latest revision as of 04:14, 6 March 2025

General

Mostly Linux, mostly free software.

See also Effects, Creative coding, Playback, Dataflow, Pure Data, Distros#Media, Acoustics




  • https://github.com/Yuan-ManX/Audio-Development-Tools#tts - a list of sound, audio and music development tools which contains machine learning, audio generation, audio signal processing, sound synthesis, game audio, digital audio workstation, spatial audio, music information retrieval, music generation, speech recognition, speech synthesis, singing voice synthesis and more.



  • CDM - blog, etc. on Create Digital music, motion, and more.


“Sound is when you mow your lawn, noise is when your neighbor mows their lawn, and music is when your neighbor mows your lawn,” [1]


Training

See Music#Training



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

Electrical

See also Electrical

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


  • WP: Audio_power - the electrical power transferred from an audio amplifier to a loudspeaker, measured in watts. The electrical power delivered to the loudspeaker, together with its efficiency, determines the sound power generated (with the rest of the electrical power being converted to heat). Amplifiers are limited in the electrical energy they can output, while loudspeakers are limited in the electrical energy they can convert to sound energy without being damaged or distorting the audio signal. These limits, or power ratings, are important to consumers finding compatible products and comparing competitors.


Digital






  • WP: I²S - Inter-IC Sound, eye-squared-ess, is an electrical serial bus interface standard used for connecting digital audio devices together. It is used to communicate PCM audio data between integrated circuits in an electronic device. The I²S bus separates clock and serial data signals, resulting in simpler receivers than those required for asynchronous communications systems that need to recover the clock from the data stream. Alternatively I²S is spelled I2S (pronounced eye-two-ess) or IIS (pronounced eye-eye-ess). Despite the similar name, I²S is unrelated to the bidirectional I²C (IIC) bus.



  • SRC Comparisons - "We have organized the testing of some of the objective parameters of SRC algorithms in the 96 kHz - 44.1 kHz conversion mode. This mode is considered "hard" because of its fractional resampling ratio. The set of test signals has been discussed among engineers from Weiss Engineering, Alexey Lukin and members of Glenn Meadows' Mastering Web-Board. The test files were available in a variety of resolutions (32-bit int, 32-bit float, 24-bit), and the best supported resolution has been used for each of the SRC algorithms tested. The resulting graphs have been drawn by a modified version of the RightMark Audio Analyzer (RMAA) and some specially developed analysis software."



  • Sound on Sound: Phase Demystified - Phase interactions are well known for their ability to destructively interfere with recorded signals, but an understanding of the process can turn it into one of the most powerful creative tools available to you.




Hardware

see sound on sound, etc.


  • Schematic Vault - This collection of pro audio schematics and reference materials has been amassed both from my private stock and from various internet resources. All materials have been formatted as multi-page pdf files for ease of use. Please feel free to email me (address on home page) with any material you'd care to add.


Studio


Wiring


  • WP: Phone_connector_(audio) - also known as phone jack, audio jack, headphone jack or quarter inch jack plug, is a family of electrical connectors typically used for analog audio signals. The phone connector was invented for use in telephone switchboards in the 19th century and is still widely used. The phone connector is cylindrical in shape, with a grooved tip to retain it. In its original audio configuration, it typically has two, three, four and, occasionally, five contacts. Three-contact versions are known as TRS connectors, where T stands for "tip", R stands for "ring" and S stands for "sleeve". Ring contacts are typically the same diameter as the sleeve, the long shank. Similarly, two-, four- and five- contact versions are called TS, TRRS and TRRRS connectors respectively. The outside diameter of the "sleeve" conductor is 1⁄4 inch (6.35 millimetres).

The "mini" connector has a diameter of 3.5 mm (0.14 in) and the "sub-mini" connector has a diameter of 2.5 mm (0.098 in).






  • WP: Balanced_audio - a method of interconnecting audio equipment using balanced lines. This type of connection is very important in sound recording and production because it allows the use of long cables while reducing susceptibility to external noise caused by electromagnetic interference.Balanced connections typically use shielded twisted-pair cable and three-conductor connectors. The connectors are usually 3-pin XLR or 1⁄4 inch (6.35 mm) TRS phone connectors. When used in this manner, each cable carries one channel, therefore stereo audio (for example) would require two of them.


  • WP: XLR_connector - a style of electrical connector, primarily found on professional audio, video, and stage lighting equipment. The connectors are circular in design and have between 3 and 7 pins. They are most commonly associated with balanced audio interconnection, including AES3 digital audio, but are also used for lighting control, low-voltage power supplies, and other applications. XLR connectors are available from a number of manufacturers and are covered by an international standard for dimensions, IEC 61076-2-103.[1] They are superficially similar to the older and smaller DIN connector range, but are not physically compatible with them.



Patch bay



"Full-Normal : Each jack on the top-row is connected to the jack under it on the bottom-row. This allows the audio or video signal to “pass-through” the patchbay without using a patch cable. When we want to change the “normal” signal path we can use a patch cable to change the destination of the signal. Placing a patch cable into the either row breaks the signal path. The signal follows the patch cable to where it is patched.

"Half-Normal: ...Placing a patch cable into the bottom-row breaks the signal path. Placing a patch cable into the top-row allows the signal to still go to the jack under it on the bottom-row (without breaking the normal) and also follows the patch cable."


Microphones

  • WP: Microphone - colloquially nicknamed mic or mike (/maɪk/), is a transducer that converts sound into an electrical signal.Microphones are used in many applications such as telephones, hearing aids, public address systems for concert halls and public events, motion picture production, live and recorded audio engineering, sound recording, two-way radios, megaphones, radio and television broadcasting, and in computers for recording voice, speech recognition, VoIP, and for non-acoustic purposes such as ultrasonic sensors or knock sensors.Several different types of microphone are in use, which employ different methods to convert the air pressure variations of a sound wave to an electrical signal. The most common are the dynamic microphone, which uses a coil of wire suspended in a magnetic field; the condenser microphone, which uses the vibrating diaphragm as a capacitor plate, and the piezoelectric microphone, which uses a crystal of piezoelectric material. Microphones typically need to be connected to a preamplifier before the signal can be recorded or reproduced.





Preamplifier

Direct injection

  • WP: DI_unit - an electronic device typically used in recording studios and in sound reinforcement systems to connect a high-output impedance, line level, unbalanced output signal to a low-impedance, microphone level, balanced input, usually via an XLR connector and XLR cable. DIs are frequently used to connect an electric guitar or electric bass to a mixing console's microphone input jack. The DI performs level matching, balancing, and either active buffering or passive impedance matching/impedance bridging to minimize unwanted noise, distortion, and ground loops. DI units are typically metal boxes with input and output jacks and, for more expensive units, “ground lift” and attenuator switches. DI units are also referred to as a DI box, direct box, or simply DI, with each letter pronounced, as in "Dee Eye." The term is variously claimed to stand for direct input, direct injection, direct induction or direct interface.

Mixer



  • WP: Panning_law - or panning rule, is a recording and mixing principle that states that any signal of equal amplitude and phase that is played in both channels of a stereo system will increase in loudness up to 6.02 dBSPL, provided there is perfect response in the loudspeaker system and perfect acoustics in the room. Often, the acoustic summing of a room and system are inferior to the ideal, so the specific relative level will increase from −3 dB to 0 dB as the mono signal is panned from center to hard left or right. The idea of including a pan law is so that when one directs signals left or right with the pan pot, the perceived loudness will stay the same.



  • RD/MPCTools - Extension Toolkit for Martin M-Series Software



  • https://github.com/omriharel/deej - an open-source hardware volume mixer for Windows and Linux PCs. It lets you use real-life sliders (like a DJ!, to seamlessly control the volumes of different apps (such as your music player, the game you're playing and your voice chat session) without having to stop what you're doing.

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.


  • WP: Amplifier_figures_of_merit - numerical measures that characterize its properties and performance. Figures of merit can be given as a list of specifications that include properties such as gain, bandwidth, noise and linearity, among others listed in this article. Figures of merit are important for determining the suitability of a particular amplifier for an intended use.



  • YouTube: Is equipment burn in real? - "all capacitors have to form, you put voltage on them and little microscopic holes are filled and it changes the equivalent series resistance and a number of other characteristics"


  • WP: Automatic_gain_control - a closed-loop feedback regulating circuit in an amplifier or chain of amplifiers, the purpose of which is to maintain a suitable signal amplitude at its output, despite variation of the signal amplitude at the input. The average or peak output signal level is used to dynamically adjust the gain of the amplifiers, enabling the circuit to work satisfactorily with a greater range of input signal levels. It is used in most radio receivers to equalize the average volume (loudness, of different radio stations due to differences in received signal strength, as well as variations in a single station's radio signal due to fading. Without AGC the sound emitted from an AM radio receiver would vary to an extreme extent from a weak to a strong signal; the AGC effectively reduces the volume if the signal is strong and raises it when it is weaker. In a typical receiver the AGC feedback control signal is usually taken from the detector stage and applied to control the gain of the IF or RF amplifier stages.






Crossover

Speaker

See Speaker

Headphones






AutoEq

  • AutoEq
    • https://github.com/jaakkopasanen/AutoEq - a project for equalizing headphone frequency responses automatically and it achieves this by parsing frequency response measurements and producing equalization settings which correct the headphone to a neutral sound. This project currently has over 2500 headphones covered in the results folder. See Usage for instructions how to use the results with different equalizer softwares and Results section for details about parameters and how the results were obtained. [7]


Ploopy

Calibration


Synthesizer

See Synthesis, Creative coding

Vocoder

  • Elektor 10 Channel Vocoder - "I'm a synth & electronics passionate fan and live near Antwerp, Belgium. In the mid 1990's, really young and inexperienced, I decided to build the Elektor 10 channel vocoder as described in the Dutch Elektor magazine from the early 1980's."

Drum machine

See also Drum synth, Drumming#Software 2, Sound banks


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


  • eXaDrums - Electronic drums for Linux. The goal project is to use a Raspberry Pi to make a drum module. As far as the software goes, it is written in C++ and uses Gtkmm to display a nice graphical user interface (GUI) on a Raspberry Pi official 7" touchscreen. The hardware consists of some accelerometers or piezos connected to an analog to digital converter (ADC).


  • DrumKid - an "aleatoric" drum machine, meaning it uses random numbers to determine the rhythm and sound of a drum beat. It comes in a handheld, battery-powered unit, designed for live performance. Check out the video here: https://www.youtube.com/watch?v=pyN_HQfCtoQ



  • https://github.com/agraef/algodrum - an algorithmic drum machine based on Barlow's theory of meter and rhythm as explained in his book "On Musiquantics" (Section 22, "A Quantitative Approach to Metre"). It generates rhythmic patterns for any given meter in an automatic fashion, assigning a unique pulse strength to each pulse. Different notes can be played for different ranges of pulse strengths, and the pulses can be filtered according to their strengths.

Sampler


SamplerBox


Akai s3000xl

  • YouTube: Laguna presents Mind over MIDI (clean Akai s3000xl with no extra FX nor post processing) - Akai s3000xl with no extra post-processing. The audio has been just normalized for maximum volume. Electronic beat was built using individual hits from the tiny Teenage Engineering PO12 rhythm box. Bassline is just the basic Akai default sinewave modulated with internal filter and amplitude envelopes. Speech comes from the tutorial "How To Get The Most Of Music X" featured in the (Commodore) Amiga Format magazine in the early nineties.Drum breaks belong to the timeless classic "The fuzz and da boog" by Fuzzy Haskins

Audio-Sampler-Selector

  • https://github.com/vongon/Audio-Sampler-Selector - An embedded Linux system that plays back audio samples for musical performance. This prototype is the first milestone of development for a multi-layered audio sample based musical instrument. The project incorporates embedded Linux development, analog circuit design, pcb layout, and lots of soldering/drilling/constructing.


pikocore

nyblcore

Sound module

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



DAC / ADC



  • https://github.com/hideakitai/MCP4728 - Arduino library for MCP4728 quad channel, 12-bit voltage output Digital-to-Analog Convertor with non-volatile memory and I2C compatible Serial Interface


  • https://github.com/skiselev/i2s_audio_phat - a Raspberry Pi Zero pHAT form-factor I2S audio interface board based on a Cirrus Logic (Wolfson) WM8731 audio codec. It provides line input, line output, headphones output, and includes an on-board microphone.




  • https://github.com/mattogodoy/h6 - allows you to control your Zoom H6 recorder from your computer using an USB to TTL adapter. For this, you will need a few components to make a specific cable, but it's quite simple.

Sound chip/card




  • https://github.com/bitluni/ULPSoundESP32 - These sketch show how to use the Ultra Low Power coprocessor (U.L.P.) of the ESP32 in order to play music, and relieve main processor's core of this task. Only a lightweight task refill from time to time the ULP separate memory with instruction which contains samples. That could be usefull for videos games, where graphics can monopolize both 2 cores.




  • https://github.com/Wohlstand/ail32-sandbox - A sandbox over AIL32. Build was ported for a modern environment with GNU Make and OpenWatcom. For details, please read the read.me.utf8.txt file - an official document for AIL32.



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


  • WP: Intel_High_Definition_Audio - or HD Audio or HDA, is a specification for the audio sub-system of personal computers. It was released by Intel in 2004 as successor to their AC'97 PC audio standard. During development it had the codename "Azalia".




ISA



  • https://github.com/schlae/snark-barker - a 100% compatible clone of the famed SB 1.0 "Killer Card" sound card from 1989. It implements all the features, including the digital sound playback and recording, Ad Lib compatible synthesis, the joystick/MIDI port, and the CMS chips (which are actually Philips SAA1099 synthesizer devices). [9] [10]


  • https://github.com/crazii/SBEMU - Sound blaster emulation with OPL3 for AC97. Supported Sound cards: Intel ICH / nForce, Intel High Definition Audio, VIA VT82C686, VT8233, SB Live/Audigy


PCI

  • envy24control - alsa-utils

Wavetable


  • WP: Creative_Wave_Blaster - was an add-on MIDI-synthesizer for Creative Sound Blaster 16 and Sound Blaster AWE32 family of PC soundcards. It was a sample-based synthesis General MIDI compliant synthesizer. For General MIDI scores, the Wave Blaster's wavetable-engine produced more realistic instrumental music than the SB16's onboard Yamaha-OPL3.



USB

DSP

  • https://github.com/tanvach/prettygood_dsp - self contained, Arduino compatible board for applying audio DSP. The intended purpose is to equalize and apply bass boost to BMR VR off ear headphones, but can be adapted for any other light DSP tasks by SGTL5000 codec.




  • Electrosmith Daisy - The go-to solution for your next DSP project. Build complex effects, massive loopers, and powerful sound sources on a single board.

Computer




  • https://github.com/dagargo/overwitch - an Overbridge 2 device client for JACK (JACK Audio Connection Kit).This project is based on the Overbridge USB reverse engineering done by Stefan Rehm in dtdump.The papers Controlling adaptive resampling and Using a DLL to filter time by Fons Adriaensen have been very helpful and inspiring, as well as his own implementation done in the zita resamplers found in the alsa tools project.At the moment, it provides support for all Overbridge 2 devices, which are Analog Four MKII, Analog Rytm MKII, Digitakt, Digitone, Digitone Keys, Analog Heat and Analog Heat MKII.


  • FFmpegfs Fuse Multi Media Filesystem: FFmpegfs FUSE Filesystem - a read-only FUSE filesystem which transcodes various audio and video formats to MP4, WebM, and many more on the fly when opened and read using the FFmpeg library, thus supporting a multitude of input formats and a variety of common output formats. This allows access to a multi-media file collection with software and/or hardware which only understands one of the supported output formats, or transcodes files through simple drag-and-drop in a file browser.

Music workstaion


LMN-3

FireWire

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


AES3

  • WP: AES3 - (also known as AES/EBU) is a standard for the exchange of digital audio signals between professional audio devices. An AES3 signal can carry two channels of PCM audio over several transmission media including balanced lines, unbalanced lines, and optical fiber. AES3 was jointly developed by the Audio Engineering Society (AES) and the European Broadcasting Union (EBU). The standard was first published in 1985 and was revised in 1992 and 2003. AES3 has been incorporated into the International Electrotechnical Commission's standard IEC 60958, and is available in a consumer-grade variant known as S/PDIF.

ADAT Lightpipe

  • WP: ADAT_Lightpipe - officially the ADAT Optical Interface, is a standard for the transfer of digital audio between equipment. It was originally developed by Alesis but has since become widely accepted,[1] with many third party hardware manufacturers including Lightpipe interfaces on their equipment. The protocol has become so popular that the term "ADAT" is now often used to refer to the transfer standard rather than to the Alesis Digital Audio Tape itself.

MADI

  • WP: 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


  • FOSDEM 2019: Linux and USB Audio Class 3 - The USB Audio Class 3.0 is a specification recently introduced by USB Implementers Forum. Ruslan is an author of UAC3 implementation in Linux, he will give an overview of improvements and changes in this USB Audio spec, and will share current Linux support status and challenges faced during ALSA drivers implementation.


Bluetooth


Pedal

Jesusonic

See also DAW#JSFX

  • 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






Controller

See also MIDI#Controllers



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.

Instruments

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


  • chair.audio - making digital instruments with analog interfaces. Our mission is to make sounds tangible. That's why we are developing instruments with haptic interfaces for electronic sound - both analog and software synthesis. Our Instruments have excitable surfaces that you can scratch, hit or bow. A very limited run of our developer edition will soon be available here.



Wire


Music roll

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


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

Multitrack recording

  • WP: Multitrack_recording - also known as multitracking, double tracking, or tracking—is a method of sound recording developed in 1955 that allows for the separate recording of multiple sound sources or of sound sources recorded at different times to create a cohesive whole. Multitracking became possible in the mid-1950s when the idea of simultaneously recording different audio channels to separate discrete "tracks" on the same reel-to-reel tape was developed. A "track" was simply a different channel recorded to its own discrete area on the tape whereby their relative sequence of recorded events would be preserved, and playback would be simultaneous or synchronized.

Prior to the development of multitracking, the sound recording process required all of the singers, band instrumentalists, and/or orchestra accompanists to perform at the same time in the same space. Multitrack recording was a significant technical improvement as it allowed studio engineers to record all of the instruments and vocals for a piece of music separately. Multitracking allowed the engineer to adjust the levels and tone of each individual track, and if necessary, redo certain tracks or overdub parts of the track to correct errors or get a better "take." As well, different electronic effects such as reverb could be applied to specific tracks, such as the lead vocals, while not being applied to other tracks where this effect would not be desirable (e.g., on the electric bass). Multitrack recording was much more than a technical innovation; it also enabled record producers and artists to create new sounds that would be impossible to create outside of the studio, such as a lead singer adding many harmony vocals with their own voice to their own lead vocal part, an electric guitar player playing many harmony parts along with their own guitar solo, or even recording the drums and replaying the track backwards for an unusual effect.

In the 1980s and 1990s, computers provided means by which both sound recording and reproduction could be digitized, revolutionizing audio recording and distribution. In the 2000s, multitracking hardware and software for computers was of sufficient quality to be widely used for high-end audio recordings by both professional sound engineers and by bands recording without studios using widely available programs, which can be used on a high-end laptop computer. Though magnetic tape has not been replaced as a recording medium, the advantages of non-linear editing (NLE) and recording have resulted in digital systems largely superseding tape. Even in the 2010s, with digital multitracking being the dominant technology, the original word "track" is still used by audio engineers.

Wifi recording

  • Sparrow - a basic but versatile product, allowing the recording, live broadcasting and other operations common to stage performances and TV/movie recordings.

MP3

  • WP: MP3_player - an electronic device that can play MP3 digital audio files. It is a type of digital audio player, or portable media player. Most players play more than the MP3 file format, such as Windows Media Audio (WMA), Advanced Audio Coding (AAC), Vorbis, FLAC, Speex and Ogg.


  • WP: Portable_media_player - or digital audio player (DAP) is a portable consumer electronics device capable of storing and playing digital media such as audio, images, and video files. The data is typically stored on a CD, DVD, BD, flash memory, microdrive, or hard drive. Most portable media players are equipped with a 3.5 mm headphone jack, which users can plug headphones into, or connect to a boombox or hifi system. In contrast, analogue portable audio players play music from non-digital media that use analogue signal storage, such as cassette tapes or vinyl records.Often mobile digital audio players are marketed and sold as "portable MP3 players", even if they also support other file formats and media types. Increasing sales of smartphones and tablet computers have led to a decline in sales of portable media players, leading to most devices being phased out, though flagship devices like the Apple iPod and Sony Walkman are still in production. Portable DVD/BD players are still manufactured by brands across the world.


Rockbox

  • Rockbox is a free replacement firmware for digital music players. It runs on a wide range of players:

gtkpod

  • gtkpod - a graphical user interface for the Apple iPod for Unix-like systems, written using the GTK+ toolkit.

PA system



  • WP: Backline_(stage) - used in popular music and sound reinforcement system contexts to refer to electronic audio amplification equipment and speaker enclosures that are placed behind the band or the rhythm section on stage, including amplifiers and speaker cabinets for guitars, bass guitars and keyboards. In the US and Canada, the term has expanded to include many of the musical instruments that the rhythm section musicians play, including pianos, Hammond organs, drum kits and various percussion instruments such as congas and bongos.

Sound system

  • WP: Sound_reinforcement_system - the combination of microphones, signal processors, amplifiers, and loudspeakers in enclosures all controlled by a mixing console that makes live or pre-recorded sounds louder and may also distribute those sounds to a larger or more distant audience. In many situations, a sound reinforcement system is also used to enhance or alter the sound of the sources on the stage, typically by using electronic effects, such as reverb, as opposed to simply amplifying the sources unaltered.

A sound reinforcement system for a rock concert in a stadium may be very complex, including hundreds of microphones, complex live sound mixing and signal processing systems, tens of thousands of watts of amplifier power, and multiple loudspeaker arrays, all overseen by a team of audio engineers and technicians. On the other hand, a sound reinforcement system can be as simple as a small public address (PA) system, consisting of, for example, a single microphone connected to a 100 watt amplified loudspeaker for a singer-guitarist playing in a small coffeehouse. In both cases, these systems reinforce sound to make it louder or distribute it to a wider audience.

Some audio engineers and others in the professional audio industry disagree over whether these audio systems should be called sound reinforcement (SR) systems or PA systems. Distinguishing between the two terms by technology and capability is common, while others distinguish by intended use (e.g., SR systems are for live event support and PA systems are for reproduction of speech and recorded music in buildings and institutions). In some regions or markets, the distinction between the two terms is important, though the terms are considered interchangeable in many professional circles.





  • WP: Sound_system_(Jamaican) - group of disc jockeys, engineers and MCs playing ska, rocksteady or reggae music. The sound system is an important part of Jamaican culture and history.
  • WP: Sound_system_(DJ) - a group of DJs and audio engineers contributing and working together as one, playing and producing music over a large PA system or sound reinforcement system, typically for a dance event or party.

Noise meter

  • Noise Meter - "My wife and I have both been working from home during the COVID-19 pandemic, and have observed that often our children (3, 6, and 8) will be making noise quite unaware of how loud they’ve become. A quick search showed that there are a number of noise traffic lights on the market, but it occurred to me that I could make my own, and that it would be a great way of learning about the Arduino platform."

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

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 - Linux Audio Users, slower traffic, related to the mailing list
  • #lad - Linux Audio Developers programming chat, related to the mailing list
  • #linuxmusicians - slower traffic, related to the forum
  • #opensourcemusicians - related to the podcast, FLOSS on all platforms, chat can get quite general
  • #linuxmao - Francophone, related to the site
  • #audio4linux.de - Germanophone, related to the site
  • #archlinux-proaudio - Arch Linux proaudio project and general discussion
  • #kxstudio - Debian audio repo/distro
  • #studioware - Slackware multimedia
  • #proaudio-overlay - Gentoo audio
  • #lv2 - open audio plugin format
  • #jack - audio system
  • #alsa - audio system
  • #pulseaudio - audio system
  • #audacity - sample editor
  • #ardour - DAW
  • #ingen - audio host
  • #non - "DAW"
  • #lmms - DAW
  • #rosegarden - sequencer
  • #zrythm - DAW
  • #surgesynth - synth
  • ##zynsubaddfx - synth
  • #dataflow - Pure Data
  • #lilypond - notation
  • #laborejo - notation, sequencer, SF2
  • #openal - 3d audio
  • #vorbis - codec
  • ##dsp - digital signal processing
  • ##music-electronics
  • #musicbrainz - music tagging
  • #metabrainz - musicbrains dev
  • #edmproduction - related to the subreddit
  • #RedditAudio - mostly audio consumer electronics
  • ##xenharmonic - microtonal
  • ##audio
  • #audiovisual
  • ##radio
  • ##hamradio
  • ##rtlsdr - software defined radio
  • ##electronics
  • ##music - general music listening chat
  • #music - general music listening chat
  • #EDM - slow, general electronic dance music chat channel
  • #Juce - framework
OFTC
  • #debian-multimedia

Cons

Distros

See Distros#Audio/visual, Playback#Operating System

Software lists


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



Setup

to better




Real time

See also *nix#Real-Time




Audio systems

  • WP: Sound_server - A sound server is software that manages the use of and access to audio devices (usually a sound card). It commonly runs as a background process.

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)



  • https://github.com/linuxaudio/realtime-suggestions - A bash script, that suggests optimization options (while not stating the obvious) for Linux kernel realtime use. As these are just suggestions, they should be considered with a grain of salt: Configurations on Linux distributions can differ quite a lot. That being said: This script will not think for you!



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



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.


  • https://github.com/hselasky/virtual_oss - an audio mixing application that multiplexes and demultiplexes asingle OSS device into multiple customizable OSS compatible devicesusing character devices from userspace. These devices can be used torecord played back audio and mix the individual channels in multipleways.

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




re official wiki







  • https://github.com/tiwai/salsa-lib - 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.


Information

less /proc/asound/card0/pcm0p/sub0/hw_params
  # current hardware info

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

ALSA settings are stored in file 'asound.state', location can vary depending on distribution


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


  • ALSA project - the C library reference: PCM (digital audio) interface - ALSA uses the ring buffer to store outgoing (playback) and incoming (capture, record) samples. There are two pointers being maintained to allow a precise communication between application and device pointing to current processed sample by hardware and last processed sample by application. The modern audio chips allow to program the transfer time periods. It means that the stream of samples is divided to small chunks. Device acknowledges to application when the transfer of a chunk is complete.
  • 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.


  • Alsa Opensrc Org - These instructions apply to digital connections using either electrical coax or optical connections.



  • JACK and Headphones - a virtual device in .asoundrc file that maps two channels of audio to all four channels on the soundcard. With that in place, we need to tell JACK to connect to our new virtual device "hpfix".





  • https://github.com/danieloneill/alsalist - Very basic tool to scan ALSA sequencer devices and list clients/sources in an easily parseable way, used (instead of a BASH mess of "aconnect -l" and a pile of pipes) to automate connecting a DTX400k kit USB MIDI data to the output of a USB MIDI adapter.

Libraries

loopback

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


Tools

alsactl
  # advanced controls for ALSA soundcard driver

alsactl init
  # initiate basic configure

alsactl store
  # storae configuration


  • stativ / asoundconf - asoundconf-gtk, the GTK+ applet to allow you to select your default sound card.


  • http://alsa.opensrc.org/Alsa-tools
    • https://launchpad.net/ubuntu/xenial/+package/alsa-tools-gui
      • echomixer - control tool for Echoaudio soundcards
      • envy24control - control tool for Envy24 (ice1712) based soundcards
      • hdajackretask - retask jacks on HDA Intel hardware
      • hdspconf - GUI program to control the Hammerfall HDSP Alsa Settings.
      • hdspmixer - tool to control the advanced routing features of the
      • RME Hammerfall DSP.
      • rmedigicontrol - control tool for RME Digi32 and RME Digi96 soundcards


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






  • https://github.com/x42/alsa_request_device - This tool sends a request to the session message bus to reserve an audio-device: Other applications which may currently use the device are asked to release it (which may or may not succeed depending on the given priority -p).


  • https://github.com/gch1p/alsa-volume-monitor - a simple program written in C that listens to ALSA events and emits a DBus signal when something has been changed (e.g. volume). It was created for use with Awesome WM in volume indicator widgets.



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

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
alternate-sample-rate = 44100
  # in daemon.conf
echo "alternate-sample-rate = 44100" >> ~/.pulse/daemon.conf && echo "flat-volumes = no" >> ~/.pulse/daemon.conf


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
pacmd unload-module module-udev-detect && pacmd load-module module-udev-detect [21]
  # register a new device
pacmd load-module module-null-sink sink_name=virtual
  # loopback device









  • https://github.com/rhaas80/pa_volume - a simple tool to set the remembered volume level of pulseaudio clients. It requires module-stream-restore to be loaded (which is usually the case) to function. When called without arguments it shows all the known clients (running and non-running) and their remembered volume level. To set the volume level pass it the name of the client followed by the volume in pecent.

Mixer

GUI

See also GUI#Volume / audio

pavucontrol
pavucontrol-qt
pavucontrol (compact fork)
Myxer
  • https://github.com/VixenUtils/Myxer - a lightweight, powerful Volume Mixer built with modern UI design for a seamless user experience. Devices, Streams, and even Card profiles can all be managed with Myxer, providing a complete replacement for your system Volume Mixer.
CLI
pulseaudio-ctl
pamixer
ponymix
PAmix
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

Processing

pulseaudio-equalizer
Loudness Equalizer
T5! Crossover Rack / Parametric Equalizer
  • T5! - DIY DSP software projects, speaker crossovers and equalization in software. This is for several reasons: It is way easier to adjust filters in software than in hardware and you will be adjusting a lot while designing your own speakers... In my opinion software based filters (DSP) are good enough to perform similarly if not better than their analog counterparts. With a multi-channel DAC multi-amping is a no-brainer, too. Processing power is cheap nowadays, analog circuitry is not.Thus you will find some on this page.
  • Pulseaudio Crossover Rack - a program to design and implement multi-way speaker crossovers using any linux powered computer with a multi-channel sound card and a running desktop environment which uses Pulseaudio as it's sound backend. It also uses a set of LADSPA plugins, namely ladspa-t5-plugins for the heavy lifting of DSP/autio processing. It's written in python3 and uses QT as the windowing toolkit.
  • Pulseaudio Parametric Equalizer - a python GUI to insert a fully parametric three band equalizer with high and low shelves into the pulseaudio audio server. I mainly wrote this being inspired by the existing project pulseaudio-euqalizer. I was in need of a fully parametric EQ for proper speaker response equalization though and so I wrote whis application.
vamp-live-host
micFX
prettyeq
pulseaudio-webrtc-audio-processing
sound-of-interrupts
JDSP4Linux

Other

pasuspender
pasuspender -- audacity
  # temporaraly suspend pulseaudio and launch audacity, for when PA gets in the way and config yak shaving isn't an option
autopulse
pamidicontrol
vu
papeaks
padsp
  • 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
apulse
pulseaudio-dlna
pulseaudio-raop2
noise-volume-daemon
  • https://github.com/sonofevil/noise-volume-daemon - Bash script which dynamically fades in/out the volume of an audio-generating process (e.g. an ambient noise generator like anoise.py) in response to whether other processes are using audio. Requires Pulseaudio. Uses pipes that might be fragile. Can't tell the difference between paused and playing audio.
pagraphcontrol
PulseDroid

JACK

See also #JACK configuration

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






  • Sound Engineers Guide to Jackd - This page attempts to collect in one place various issues surrounding the design and abilities of Paul Davis's wonderful Jackd from the point of view of a technical user. It is not an introduction or a usage howto.



Clients





  • https://github.com/fps/jack_wakeup - A small utility to sample wakeup times for a jackd client. Its usefullness is mostly limited to being run as the only client in a jack session since only in this case it's guaranteed to be run as soon as possible after a period has started.
  • https://github.com/fps/jack2_split - A program that facilitates parallelism in serial jack graphs by introducing latency. Only useful for jack2/jackdmp - it does nothing but add latency in jack1 setups.


Libraries / headers




  • https://github.com/stetre/luajack - a Lua binding library for the JACK Audio Connection Kit. It runs on GNU/Linux and requires Lua (>=5.3) and JACK (API >= v0.124.1).


Metadata



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.

PipeWire

See Audiovisual#PipeWire

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

NAS

Enlightened Sound Daemon

Integration

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


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

Apple

See Apple#Audio

Windows

See Windows




  • https://wiki.jriver.com/index.php/WASAPI - is Microsoft's most modern method for talking with audio devices. It is available in Windows Vista, Windows 7, and later versions of Windows. It allows delivering an unmodified bitstream to a sound device, and provides benefits similar to those provided by ASIO drivers. One of the other main benefits of WASAPI is that it provides applications with exclusive access to audio devices, bypassing the system mixer, default settings, and any typically any effects provided by the audio driver. WASAPI is the recommended Audio Output Mode for Windows unless your audio device has a well-behaved ASIO driver, and it effectively replaces all legacy output modes including Kernel Streaming and Direct Sound.


  • WP: DirectSound - a deprecated software component of the Microsoft DirectX library for the Windows operating system. DirectSound provides a low-latency interface to sound card drivers wrcven for Windows 95 through Windows XP and can handle the mixing and recording of multiple audio streams.
  • WP: DirectMusic - a deprecated component of the Microsoft DirectX API that allows music and sound effects to be composed and played and provides flexible interactive control over the way they are played. Architecturally, DirectMusic is a high-level set of objects, built on top of DirectSound, that allow the programmer to play sound and music without needing to get quite as low-level as DirectSound. DirectSound allows for the capture and playback of digital sound samples, whereas DirectMusic works with message-based musical data. Music can be synthesized either in hardware, in the Microsoft GS Wavetable SW Synth, or in a custom synthesizer.
  • WP: XAudio2 - a lower-level audio API for Microsoft Windows, Xbox 360 and Windows Phone 8, the successor to DirectSound on Windows and a supplement to the original XAudio on the Xbox 360. XAudio2 operates through the XAudio API on the Xbox 360, through DirectSound on Windows XP, and through the low-level audio mixer WASAPI on Windows Vista and higher.


  • ASIO4ALL - Universal ASIO Driver For WDM Audio



  • https://github.com/duncanthrax/scream - a virtual device driver for Windows that provides a discrete sound device. Audio played through this device is published on your local network as a PCM multicast stream.Receivers on the network can pick up the stream and play it through their own audio outputs. Receivers are available for Unix/Linux (interfacing with PulseAudio or ALSA) and for Windows. For the special scenario of a Windows guest on a QEMU host, @martinellimarco has contributed support for transferring audio via the IVSHMEM driver mechanism, similar to the GPU pass-through software "Looking Glass". See the section on IVSHMEM below. Scream is based on Microsoft's MSVAD audio driver sample code. The original code is licensed under MS-PL, as are my changes and additions


JACK configuration

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


  • jackd(1) - the JACK audio server daemon, a low-latency audio server. Originally written for the GNU/Linux operating system, it also supports Mac OS X and various Unix platforms. JACK can connect a number of different client applications to an audio device and also to each other. Most clients are external, running in their own processes as normal applications. JACK also supports internal clients, which run within the jackd process using a loadable "plugin" interface.


 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




Utilities

# jack2 package commands
jack_alias
jack_bufsize
jack_control
jack_cpu
jack_cpu_load
jack_disconnect
jack_evmon
jack_freewheel
jack_iodelay
jack_latent_client
jack_load
jack_metro
jack_midi_dump
jack_midi_latency_test
jack_midiseq
jack_midisine
jack_monitor_client
jack_multiple_metro
jack_net_master
jack_net_slave
jack_netsource
jack_rec
jack_samplerate
jack_server_control
jack_session_notify
jack_showtime
jack_simple_client
jack_simple_session_client
jack_test
jack_thru
jack_transport
jack_unload
jack_wait
jack_zombie

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

jack_lsp
  # list jack ports

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


  • jack-play(1) — jack-tools — Debian stretch — Debian Manpages - a light-weight JACK sound file player. It creates as many output ports as there are channels in the input file. It will connect to ports mentioned in the environment variable JACK_PLAY_CONNECT_TO which must include a %d pattern to indicate port number, otherwise it implements no connection logic, use jack-plumbing(1) instead. Written by Rohan Drape.
  • q=0: SRC_LINEAR
  • q=1: SRC_ZERO_ORDER_HOLD
  • q=2: SRC_SINC_FASTEST
  • q=3: SRC_SINC_MEDIUM_QUALITY
  • q=4: SRC_SINC_BEST_QUALITY


  • 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

  • https://github.com/LADI/jack_control - a small program for exposing jackdbus functionality at command-line. Chained execution of several commands is possible. For example "jack control ds alsa dps midi-driver raw eps realtime on eps relatime-priority 70 start" selects ALSA driver, enables JACK MIDI raw backend, enables realtime mode, sets realtime priority to 70 and starts JACK server.

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

jack-select

jackman

jacksettings

Connections

alsa_in / alsa_out

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

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


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


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

To see what application has control of the interface:

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

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


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 Std-I/O

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

Configuration GUI

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 &

Studio Controls




Jack Control Panel


Other utils

to sort


  • jack-data: jack audio data onto osc (May 2016)
  • jack-dl: load dsp algorithms from shared libraries (October 2008)
  • jack-level: jack cli level meter (April 2019)
  • jack-lxvst: jack cli host for linux vst instruments (April 2016)
  • jack-osc: jack <-> open sound control daemon (January 2004)
  • jack-play: resampling soundfile playback (November 2003)
  • jack-plumbing: plumbing daemon (July 2003) rju-plumbing.md - JACK Plumbing Daemon
  • jack-record: soundfile recording (April 2004)
  • jack-scope: plain X oscilloscope (January 2004)
  • jack-transport: minimalist ncurses jack transport (November 2006)
  • jack-udp: jack over udp client (November 2003)







  • https://github.com/falkTX/wineasio - provides an ASIO to JACK driver for WINE. ASIO is the most common Windows low-latency driver, so is commonly used in audio workstation programs.


  • https://github.com/kmatheussen/KillJack - The Jack server sometimes crashes/freezes in ways which make users restart the computer in order to use Jack again. This program kills Jack unconditionally. Executables for Linux, MacOS, and Windows are provided. I strongly recommend that all programs using Jack includes a program like this.




Session management

Use something NSM based! Argodejo or RaySession.


LASH Audio Session Handler (/ LADCCA)

  • LASH - Trac - a session management system for JACK and ALSA audio applications on GNU/Linux. It is an implementation of a proposal that originated from this discussion. 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. LASH doesn't deal with any kind of audio data itself; it just runs programs, deals with saving/loading (arbitrary) data and connects different kinds of virtual audio ports together (currently JACK and ALSA sequencer ports). It can also be used to move entire sessions between computers, or post sessions on the Internet for download.
    • 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".


formerly;

  • LADCCA - session management system for JACK audio and ALSA MIDI applications on GNU/Linux. LADCCA's aim is to allow you to have many different audio programs running at once, to save their setup, close them down and then reload the setup at some other time. LADCCA doesn't deal with any kind of audio data itself; it just runs programs, deals with saving/loading data and connects different kinds of virtual audio ports together (currently JACK and ALSA sequencer ports.)LADCCA's name has changed and development continues as the LASH project.
  • Linux Audio Developer's Configuration and Connection API - Table of Contents - Audio application session management and configuration

Became LASH.

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 - 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
    • https://github.com/alessio/ladish/


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


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.



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






New Session Manager (NSM)

  • New Session Manager - a tool to assist music production by grouping standalone programs into sessions. Your workflow becomes easy to manage, robust and fast by leveraging the full potential of cooperative applications.It is a community version of the "NON Session Manager" and free in every sense of the word: free of cost, free to share and use, free of spyware or ads, free-and-open-source.You can create a session, or project, add programs to it and then use commands to save, start/stop, hide/show all programs at once, or individually. At a later date you can then re-open the session and continue where you left off.All files belonging to the session will be saved in the same directory.


  • Non Session Manager - an [older] 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. 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.



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





new-session-manager

  • https://github.com/linuxaudio/new-session-manager - a tool to assist music production by grouping standalone programs into sessions. Your workflow becomes easy to manage, robust and fast by leveraging the full potential of cooperative applications.It is a community version of the "NON Session Manager" and free in every sense of the word: free of cost, free to share and use, free of spyware or ads, free-and-open-source.

RaySession

  • https://github.com/Houston4444/RaySession - a GNU/Linux session manager for audio programs as Ardour, Carla, QTractor, Non-Timeline, etc... It uses the same API as Non Session Manager, so programs compatible with NSM are also compatible with Ray Session. As Non Session Manager, the principle is to load together audio programs, then be able to save or close all documents together.

Argodejo

  • Argodejo - a music production session manager. It is used to start your programs, remember their (JACK) interconnections and make your life easier in general.You can seamlessly change between two view modes to quickly start a few programs or have complete control and a detailed overview.Argodejo does not re-invent the wheel but instead uses the New-Session-Manager daemon and enhances it with some tricks of its own, that always remain 100% compatible with the original sessions.This is a proof of concept version. It aims to show that session management with NSM can be quick and convenient and make the user feel in control. Some functionality has not yet been implemented, most prominently anything related to NSM over network. There is always the possibility to break things when trying out corner cases and hacks.That said, for single-computer sessions with just one daemon and one GUI at the same time Argodejo should provide a good user experience.


Stagepatch


Gonzo

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

Catia

  • Catia - a simple JACK Patchbay, with some neat features like A2J bridge support and JACK Transport.It was initially part of the Cadence project, but now lives on its own.

Patchage

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


Patchmatrix

QJackConnect

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

Patchichi

  • https://github.com/Houston4444/Patchichi Houston4444/Patchich - an abstract JACK patchbay GUI for GNU/Linux systems, but it could be adapted to Mac and Windows with little effort. The software it most closely resembles is probably Catarina, from the Cadence suite.

rofi-jack

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

qpwgraph

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

  • https://github.com/SpotlightKid/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_autoconnect

  • https://github.com/kripton/jack_autoconnect - Tiny application that reacts on port registrations by clients and connects them. The port names are interpreted as regular expressions and more than one pair can be defined upon calling.

Jack Sanity

jacklistener etc.


patchy

ASTRUX

combaud

Timing

JACK Transport / Timebase

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


Timebase master relates to the musical/metronomic information being delivered to other JACK clients (tempo, bar, beat, ticks, time-sig. etc.).

Transport modes relate to linear playback location sync and state (stopped vs. rolling). [25]

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


  • timebase.py - Query and manipulate JACK transport state and provide timebase information using jackclient-python


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

  • Ableton Link - a technology that keeps devices in time over a local network, so you can forget the hassle of setting up and focus on playing music. Link is now part of Live, and also comes as a built-in feature of other software and hardware for music making.
  • https://github.com/Ableton/link - codebase for Ableton Link, a technology that synchronizes musical beat, tempo, and phase across multiple applications running on one or more devices. Applications on devices connected to a local network discover each other automatically and form a musical session in which each participant can perform independently: anyone can start or stop while still staying in time. Anyone can change the tempo, the others will follow. Anyone can join or leave without disrupting the session.



  • https://github.com/ak5k/reablink - REAPER plug-in extension providing ReaScript bindings for Ableton Link session, and Ableton Link Test Plan compliant implementations for REAPER.


  • https://github.com/x37v/jack_transport_link - A service that bridges Ableton's Link to and from Jack Transport, allowing applications that use Jack Transport to synchronize their timing with other applications that support Link.



  • https://github.com/Deep-Symmetry/carabiner - A loose connector for interacting with Ableton Link. Carabiner is a program that embeds the C++ Link library and listens for local TCP connections to allow other programs, like beat-link-trigger and Afterglow, to participate in some aspects of a Link session, even though they were not written using C++ compatible languages and runtimes.




Pioneer DJ Link

See also DJing

  • https://github.com/g-zi/CDJ_Clock -missing link between Pioneers Pro DJ Link and Ableton Live. CDJ Clock generates MIDI beat clock from Pioneers Pro DJ Link. With CDJ Clock anything what understands MIDI Beat Clock can be synced to Pioneer CDJs.






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)


Metronomes


kmetronome

  • 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

TICK

  • https://github.com/talaviram/TICK - tailored made to make a small portable Metronome plug-in. It can also work in standalone mode, meaning it can have agnostic time to the host itself.

ametro

klick

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

  • gtklick - a GTK frontend to klick. It's written in Python and communicates with klick via OSC.
klick -o 12345 60 &
gtklick -q osc.udp://localhost:12345

Polygnome

GTick

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

  • Hubcap - a fairly simple metronome *nix app with a tempo fader and both auditory and visual feedback on a beat.
    • Audio only, no MIDI

Accelerando

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

jmetro

midiclick

ctronome

  • ctronome - a very simple yet powerful ;) programmable console metronome software.
    • OSS Audio only, no MIDI

Click Tracker

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

clicktrack

Metronome

Visual metronomes

JVMetro
vimebac
  • https://gitlab.com/smondet/vimebac - graphical metronome and instructions display that interfaces with JACK-midi applications. The display can be completely driven by MIDI events and it can also send MIDI events. It can also be self-driven and hence run without jackd although this is somewhat less interesting since it becomes just a visual metronome.
BeatViz
  • https://github.com/kunstmusik/BeatViz - shows a 4x4 grid that represents additive groupings of beats. (Beat here meaning a single atomic tick, equal to a 16th note within the author's Csound Live Code system. UDP controlled.
Nevena's Metronome
ticker

Web metronomes


  • Chrome Web Store: Dr. Beat - developed as a part of the HackTime (http://goo.gl/SscNs) project from GDG Chrome Korea. It's a metro style metronome app. It helps you to keep the beats.

Windows

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


EspGrid

  • EspGrid - an OSC based software system to streamline the sharing of timing, beats and code in electronic ensembles, from duos and trios through larger laptop orchestras to globally distributed ensembles. A number of features distinguish EspGrid from most other systems: a collection of different algorithms to estimate time differences are included, and can be selected on the fly it is a freestanding application, not built on top of or dependent upon, common audio programming environments (this means that if you change or crash your audio programming environment nothing changes for your collaborators) a rudimentary "bridge" system allows the construction of ensembles spanning multiple networks (for example: two laptop orchestras, each connected locally with a router/switch but connected to each other over the Internet)

Networked

See also Streaming#Audio, Networked media

AoIP

AoE

  • WP: Audio_over_Ethernet - the use of an Ethernet-based network to distribute real-time digital audio. AoE replaces bulky snake cables or audio-specific installed low-voltage wiring with standard network structured cabling in a facility. AoE provides a reliable backbone for any audio application, such as for large-scale sound reinforcement in stadiums, airports and convention centers, multiple studios or stages.

While AoE bears a resemblance to voice over IP (VoIP) and audio over IP (AoIP), AoE is intended for high-fidelity, low-latency professional audio. Because of the fidelity and latency constraints, AoE systems generally do not utilize audio data compression. AoE systems use a much higher bit rate (typically 1 Mbit/s per channel) and much lower latency (typically less than 10 milliseconds) than VoIP. AoE requires a high-performance network. Performance requirements may be met through use of a dedicated local area network (LAN) or virtual LAN (VLAN), overprovisioning or quality of service features. Some AoE systems use proprietary protocols (at the higher OSI layers) which create Ethernet frames that are transmitted directly onto the Ethernet (layer 2) for efficiency and reduced overhead. The word clock may be provided by broadcast packets.



See also Networking#ISDN

mLAN

  • WP: mLAN - short for Music Local Area Network, is a transport level protocol for synchronized transmission and management of multi-channel digital audio, video, control signals and multi-port MIDI over a network. The mLAN protocol was originally developed by Yamaha Corporation, and publicly introduced in January 2000. It was available under a royalty-free license to anyone interested in utilizing the technology. mLAN exploits several features of the IEEE 1394 (FireWire) standard such as isochronous transfer and intelligent connection management. There are two versions of the mLAN protocol. Version 1 requires S200 rate, while Version 2 requires S400 rate and supports synchronized streaming of digital audio at up to 24 bit word length and 192 kHz sample rate, MIDI and wordclock at a bitrate up to 400 Megabits per second. As of early 2008, mLAN appeared to have reached the end of its product life.


  • mLAN Central -"mLAN FireWire Music Networking is the enabling technology for creating an intelligent, managed local area music network using FireWire. mLAN not only carries multi-channel digital audio and MIDI over 1394 FireWire, it includes the connection management so you can easily manage your entire network."


AES67

  • WP: AES67 - a technical standard for audio over IP and audio over ethernet interoperability. The standard was developed by the Audio Engineering Society and first published in September 2013. It is a layer 3 protocol suite based on existing standards and is designed to allow interoperability between various IP-based audio networking systems such as RAVENNA, Livewire, Q-LAN and Dante. It also provides interoperability with layer 2 technologies, like Audio Video Bridging (AVB). AES67 promises interoperability between previously competing networked audio systems and long-term network interoperation between systems. Since its publication, AES67 has been implemented independently by several manufacturers and adopted by many others.






AVB/TSN

  • WP: Audio_Video_Bridging - a common name for the set of technical standards which provide improved synchronization, low-latency, and reliability for switched Ethernet networks. AVB embodies the following technologies and standards: IEEE 802.1AS-2011: Timing and Synchronization for Time-Sensitive Applications (gPTP); IEEE 802.1Qav-2009: Forwarding and Queuing for Time-Sensitive Streams (FQTSS); IEEE 802.1Qat-2010: Stream Reservation Protocol (SRP); IEEE 802.1BA-2011: Audio Video Bridging (AVB, Systems; IEEE 1722-2011 Layer 2 Transport Protocol for Time-Sensitive Applications (AV Transport Protocol, AVTP); and IEEE 1722.1-2013 Device Discovery, Enumeration, Connection Management and Control Protocol (AVDECC).


  • WP: Time-Sensitive_Networking - a set of standards under development by the Time-Sensitive Networking task group of the IEEE 802.1 working group. The TSN task group was formed in November 2012 by renaming the existing Audio Video Bridging Task Group and continuing its work. The name changed as a result of the extension of the working area of the standardization group. The standards define mechanisms for the time-sensitive transmission of data over deterministic Ethernet networks. The majority of projects define extensions to the IEEE 802.1Q – Bridges and Bridged Networks, which describes virtual LANs and network switches. These extensions in particular address the transmission of very low transmission latency and high availability. Applications include converged networks with real-time audio/video streaming and real-time control streams which are used in automotive or industrial control facilities.


  • https://github.com/christophe-calmejane/Hive - a pro audio Avdecc (IEEE Std 1722.1) controller. Hive allows you to inspect, configure and connect AVB Entities on your network, specifically targeting AVnu Milan compatible devices (but not only).


JACK

Netjack

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

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


Zita-njbridge

  • Zita-njbridge Command line Jack clients to transmit full quality multichannel audio over a local IP network, with adaptive resampling by the receiver(s). Zita-njbridge can be used for a one-to-one connection (using UDP) or in a one-to-many system (using multicast). Sender and receiver(s) can each have their own sample rate and period size, and no word clock sync between them is assumed. Up 64 channels can be transmitted, receivers can select any combination of these. On a lightly loaded or dedicated network zita-njbridge can provide low latency (same as for an analog connection). Additional buffering can be specified in case there is significant network delay jitter. IPv6 is fully supported.



  • https://github.com/nettings/medianet - The medianet distribution is a derivative of Debian Linux/Raspberry Pi OS. It was created to turn Raspberry Pis into reliable embedded audio nodes, signal processors, and streaming endpoints.The audio system is built around the JACK Audio Connection Kit, complemented with the mod-host to run LV2 plugins, the zita-njbridge to provide clock decoupled uncompressed network audio streaming, and many other open-source audio tools.


jack_audio_send / jack_audio_receive

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


MultiJACK

  • https://github.com/ponderworthy/MultiJACK - a fully operational demo of a framework to increase available audio DSP power available to JACK within a single multicore motherboard, using multiple JACK processes in concert, connected via IP transport.

Compared to jack2??


FLACJACKet

  • https://github.com/0xsx/FLACJACKet - a DLNA media server that broadcasts streams of audio routed to JACK input ports over the local network encoded in the FLAC format. It aims to provide reliable audio transmission while minimizing latency and taking advantage of FLAC features such as lossless compression and support for surround sound. It is Free and Open Source Software, released under the GNU General Public License.


TPF

trx

jackcast

Spatify

PipeWire

See AV


Studio Link


AudioGridder

  • https://github.com/apohl79/audiogridder - DSP servers using general purpose networks and computers] - allows you to offload DSP processing from your local to remote computers. This can come in handy when mixing complex projects for instance. AudioGridder comes with a plugin and a server that is enabling VST3 and AudioUnit plugins to be hosted across the network. Simply run the server component on a remote machine and connect your DAW using the AudioGridder AU/VST3 plugin. You can add remote insert chains into your DAW's signal paths that way. The DSP code of the inserted plugins will be executed on the remote machine and the plugin UI's will be streamed over the wire. This allows for an experience very close to hosting the plugins directly in your DAW but not using your local CPU.

Roc

HBRMT

  • WP: High_bit_rate_media_transport - (HBRMT) formerly known as High bit rate audio video over IP (HBRAV-IP), is a proposed standard for data encapsulation and forward error correction (FEC) of high bit rate contribution oriented video/audio feed services, up to 3 Gbit/s over Ethernet networks. HBRMT is being developed by the SMPTE 32NF networking technology committee. HBRMT is designed to incorporate both SDI uncompressed and JPEG 2000 compressed video and audio formats.

waveOverUDP

VBAN

  • VB-Audio Network - VBAN Protocol has been designed for real-time transport of digital audio stream in IP-based network environments. VBAN allows to send or / and receive audio to / from other computers of any local networks. Voicemeeter already allows easy way to manage several incoming / outgoing streams. For Any Local Network Infra-Structure Based on UDP Protocol, VBAN is made for Audio Pro and Audiophiles, to transport multichannel audio in native PCM format (all sampling rate supported). Developed like a "RADIO" transmitter / receptor system, the VBAN protocol can also broadcast other data (Serial, TXT...).



SonoBus

  • SonoBus - an easy to use application for streaming high-quality, low-latency peer-to-peer audio between devices over the internet or a local network. Simply choose a unique group name (with optional password), and instantly connect multiple people together to make music, remote sessions, podcasts, etc. Easily record the audio from everyone, as well as playback any audio content to the whole group. Connects multiple users together to send and receive audio among all in a group, with fine-grained control over latency, quality and overall mix. Includes optional input compression, noise gate, and EQ effects, along with a master reverb. All settings are dynamic, network statistics are clearly visible. Works as a standalone application on macOS, Windows, iOS, and Linux, and as an audio plugin (AU, VST, on macOS and Windows. Use it on your desktop or in your DAW, or on your mobile device. Easy to setup and use, yet still provides all the details that audio nerds want to see. Audio quality can be instantly adjusted from full uncompressed PCM (16, 24, or 32 bit) or with various compressed bitrates (16-256 kbps per channel) using the low-latency Opus codec, and you can do this independently for any of the users you are connected with in a group.

trx

  • trx - a simple toolset for broadcasting live audio from Linux. It sends and receives encoded audio over IP networks, via a soundcard or audio interface. It can be used for point-to-point audio links or multicast, eg. private transmitter links for a radio station or other live audio distribution. In contrast to traditional streaming, high quality wideband audio (such as music) can be sent with low-latency, typically as low as a few milliseconds, and incredibly fast recovery from dropouts. It works favourable as a replacement for traditional ISDN lines and hardware ISDN codecs. Features include: Very simple to set up Low latency with fast recovery from dropouts Full control over latency and buffers Supports IPv4 and IPv6, including multicast Unlike TCP streaming such as Icecast, trx uses RTP/UDP with handling of dropped packets and network congestion that is more appropriate to live or realtime audio. Much of this comes courtesy of the brilliant Opus audio codec. The result is an incredibly graceful handling of network loss or dropouts. It is intended for use over closed or private IP networks. It can be used over the public internet, but you are warned that it has no built-in security or authentication of the received audio. If you do not already have a private network you may wish to use an appropriate tunnel or IPsec. trx is based on the following software/libraries: ALSA (Linux) Opus codec lib oRTP: packaged with most Linux distributions

Android

See also Android#Remote

sndlink

  • https://github.com/koraa/sndlink - Point to point audio streaming over UDP with minimal latency with support for linux and android (using termux). I wrote this because my laptop audio broke and I needed a solution to use my mobile phone as an audio output to watch some movies. sndlink uses portaudio for alsa, oss, windows and linux support and uses an experimental portaudio version with opensles support on android. Instead of RTP (which is a fairly large protocol) a very simple UDP protocol with sequence numbers is used.

USBaudio

  • Introducing USBaudio · ~rom1v/blog
    • https://github.com/rom1v/usbaudio - forwards audio from an Android device to the computer over USB. It works on Linux with PulseAudio. The purpose is to enable audio forwarding while mirroring with scrcpy. However, it can be used independently, and does not require USB debugging enabled. Note that AOA audio, the feature used by USBaudio, is deprecated since Android 8.0. For Android 10, use sndcpy instead.

sndcpy

  • https://github.com/rom1v/sndcpy - forwards audio from an Android 10 device to the computer. It does not require any root access. It works on GNU/Linux, Windows and macOS. The purpose is to enable audio forwarding while mirroring with scrcpy. However, it can be used independently. Update: scrcpy 2.0 now supports audio forwarding natively.

For Android 11 onward, see Android#scrcpy.

broo

Audio Share

Plugins


Formats

VST2 / VST3

paths:

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



  • https://github.com/Xaymar/vst2sdk - a completely "clean room" untainted reverse engineered "SDK" for the VST 2.x interface. It was reverse engineered from binaries where no license restricting the reverse engineering was attached, or where the legal system explicitly allowed reverse engineering for the purpose of interoperability.




  • https://github.com/falkTX/JackAss - 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.






Creating


  • HISE - a cross-platform open source audio application for building virtual instruments. It emphasizes on sampling, but includes some basic synthesis features for making hybrid instruments as well as audio effects. You can export the instruments as VST / AU / AAX plugins or as standalone application for Windows / macOS or iOS.


  • https://github.com/Tracktion/pluginval - a cross-platform plugin validator and tester application. It is designed to be used by both plugin and host developers to ensure stability and compatibility between plugins and hosts.


  • Jamba - a set of helpers (classes, concepts, build files, etc…) built on top of the VST SDK to provide a lightweight framework to build a VST2/3 plugin. Jamba has been designed to help in building VST2/3 plugin, not to replace it: you are still writing a VST2/3 plugin, not a Jamba plugin.


VST3





VST3 threads...

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.


~/.lv2
/usr/local/lib/lv2
/usr/lib/lv2
  # standard lv2 paths


lv2ls
  # list all lv2 plugins available


Specifications


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



  • LV2 MIDI - defines a data type for a MIDI message, midi:MidiEvent, which is normalised for fast and convenient real-time processing. MIDI is the Musical Instrument Digital Interface, a ubiquitous binary standard for controlling digital music devices. For plugins that process MIDI (or other situations where MIDI is sent via a generic transport) the main type defined here, midi:MidiEvent, can be mapped to an integer and used as the type of an LV2 Atom or Event.
  • LV2 + midnam


  • LV2 Units - This vocabulary defines a number of units for use in audio processing.


  • LV2 UI - This extension is used to create User Interfaces (UIs) for LV2 plugins.


  • LV2 1.0 released, what's next? - "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."


Creating
  • Programming LV2 Plugins - a series of well-documented example plugins that demonstrate the various features of LV2. Starting with the most basic plugin possible, each adds new functionality and explains the features used from a high level perspective. API and vocabulary reference documentation explains details, but not the “big picture”. This book is intended to complement the reference documentation by providing good reference implementations of plugins, while also conveying a higher-level understanding of LV2.
  • Programming LV2 Plugins - new book layout


  • The LV2 Book - Rust Edition - a translation of the LV2 Book by David Robillard for the lv2rs library. As such, the examples in this book as well as the README's and comments are copied from the original, but the book itself has been altered to adapt for the differences between C and Rust.



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


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


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







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




Testing



  • lv2lint - Check whether a given LV2 plugin is up to the specification


  • Torture tester - a program to help with testing of LADSPA and LV2 plugins.



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



Bridge from


Multicore
  • https://github.com/falkTX/portal-lv2 - allow you to magically send audio from one side of the processing chain into another.They can be used as a way to parallelize the audio processing by forcely splitting a single chain into 2.


Offline processing
  • lv2file - 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.
Events
  • Beatbox - Creates MIDI events based on LV2 time position events (bars and beats), e.g. to drive a drum machine. Bars and beats can be disabled/enabled separately.
  • Click - Synthesizes click tracks based on LV2 time position events (bars and beats). Bars and beats can be disabled/enabled separately.
  • Looper - Loops arbitrary LV2 atom events on a ping-pong buffer. E.g. loops MIDI, OSC or anything else that can be packed into LV2 atoms with sample accuracy. Needs to be driven by LV2 time position events.
  • Pacemaker - Creates LV2 time position events from scratch to drive other plugins.
  • Quantum - Quantizes incoming events to whole beats.
  • Subspace - Subdivide or multiply incoming time signals by whole fractions, e.g. to speed up time x2, x3, ... or slow it down to x1/2, x1/3, ...
  • Timecapsule - Record/Playback of arbitrary LV2 atoms to/from memory. Record all incoming atom messages with sample accuracy and play them back later from memory. Stored atom event data is part of the plugin state and thus preserved across instantiations.
Presets
  • https://gitlab.com/Jofemodo/preset2lv2 - A converter that takes a set of native presets and generate a LV2 bundle containing one or more banks. It supports several native formats and it's easily extensible.


Hardware
  • https://wiki.moddevices.com/wiki/Control_Chain - an open standard developed by MOD Devices that defines communication protocol, electrical specification, cables and connectors. It's used to interconnect external controllers (a.k.a peripheral devices) as expression pedals and foot-switches extension to MOD devices, for example the MOD Duo.


Distribution

Distro packages.

SPA

SPA is designed to also support video, multiple buffers, dmabuf backed memory, buffers managed by the hardware. It avoids the RDF descriptions of LV2, keeping the .so self contained, using simple key/value properties to describe ports and nodes. It also favours using shared memory to exchange info between host and plugins, like clock information etc.



LADSPA

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



  • https://github.com/swh/LRDF - a library to make it easy to manipulate RDF files describing LADSPA plugins. It can also be used for general RDF manipulation. It can read RDF/XLM and N3 files and export N3 files, it also has a light taxonomic inference capability. N.B. this is the descendent project of sourceforge.net/projects/lrdf


DSSI


AU


CLAP





  • https://github.com/baconpaul/clap-c99-distortion - A simple C99-only example of a CLAP audio effect. Really, you don't want to use this musically, The DSP is painfully naive. But this shows a simple set of wave folder / distortions in a 3 param state saving pure C99 CLAP Audio Effect.

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


Command-line launch 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.
Chibi
  • https://github.com/falkTX/Chibi - a mini-host audio plugin loader, meant to load one plugin at a time as if it was a standalone application.These are the goals for the project: Provide a quick way to start audio plugins; Integrate with relevant Session Managers; Allow to be reused for other projects, so plugins can literally become standalones; Provide the most useful tools from host-side without any extra plugin work; Leverage and test Carla as much as possible (avoiding duplicate work and having head-start on features). Chibi is basically Carla's little sister. It runs Carla's backend behind the scenes and shares quite a few visual traits. Building on top of what Carla has already achieved, it adds only the missing pieces for a "mini-host" setup.
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
  • 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
  • dssi-vst - Run Windows VST plugins on Linux. DSSI doesn't support host tempo to plugin features.
FST
FeSTige
  • FeSTige - a GUI for fst and dssi-vst, allowing you to run Windows VST plugins on Linux.
fsthost
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
  • 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." [28]
vstserver
vst-bridge
LinVst
  • 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.
  • https://github.com/osxmidi/LinVst-X - runs vst plugins in a single Wine process so plugins that communicate with each other or plugins that can use shared samples between instances will be able to communicate with their other instances, usage is basically the same as LinVst except that the file to be renamed to the vst dll name is linvstx.so (rather than linvst.so for LinVst).




yabridge
VSTForx
  • 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


L_Pa
  • L_Pa Project - collection of tools aimed at better integration and *performance* of Linux + Wine + jackd + Proaudio applications...L_pa accomplishes this by setting up a proper mix of kernel/software with low-latency/proaudio users _specifically in mind. So far the main components are;Custom version of the (rt-)linux kernel with a delta of patches, for linux proaudio usage.Custom version of Wine with a delta of patches to ensure Wine is ready for proaudio on the linux platform. It's also has various other improvements and bug fixes.You'll want both WineASIO and FSThost;WineASIO - WineASIO provides an ASIO to JACK driver for WINE.
vsthost
NetVST
PluginRunner
vstplugin
UnityVSTHost
Terra

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

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


LV2_PATH=/path/to/plugin.lv2 jalv.gtk URI

LV2_PATH=/path/to/plugin.lv2 lv2ls
  # to find the URI(s)
calvo
mod-host


  • https://github.com/moddevices/mod-ui - the UI for the MOD software. It's a webserver that delivers an HTML5 interface and communicates with mod-host. It also communicates with the MOD hardware, but does not depend on it to run.


Synthpod
  • Synthpod - 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
  • Elven - 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.
zynjacku
  • 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.
MODEP
  • MODEP - an open-source, community-based MOD DUO emulator that lets you play around with hundreds of LV2 audio plugins ranging from a simple reverb to a complex FM synth using your Raspberry Pi and Pisound or any other Raspberry Pi supported sound card!


PedalPi



lv2host
lv2-horst
  • https://github.com/fps/lv2-horst - A simple C++ library implementing an LV2 plugin host exposing plugins as jack clients. Python bindings are provided (these are actually the sole reason for the existance of lv2-horst).
jackwrap.c
lv2h

Manager

OwlPlug

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

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


  • WP: Differential_pulse-code_modulation - DPCM, a signal encoder that uses the baseline of pulse-code modulation (PCM) but adds some functionalities based on the prediction of the samples of the signal. The input can be an analog signal or a digital signal. If the input is a continuous-time analog signal, it needs to be sampled first so that a discrete-time signal is the input to the DPCM encoder. DPCM was invented by C. Chapin Cutler at Bell Labs in 1950; his patent includes both methods.

Option 1: take the values of two consecutive samples; if they are analog samples, quantize them; calculate the difference between the first one and the next; the output is the difference, and it can be further entropy coded. Option 2: instead of taking a difference relative to a previous input sample, take the difference relative to the output of a local model of the decoder process; in this option, the difference can be quantized, which allows a good way to incorporate a controlled loss in the encoding. Applying one of these two processes, short-term redundancy (positive correlation of nearby values) of the signal is eliminated; compression ratios on the order of 2 to 4 can be achieved if differences are subsequently entropy coded, because the entropy of the difference signal is much smaller than that of the original discrete signal treated as independent samples.


  • WP: Adaptive_differential_pulse-code_modulation - ADPCM, is a variant of differential pulse-code modulation (DPCM) that varies the size of the quantization step, to allow further reduction of the required data bandwidth for a given signal-to-noise ratio. Typically, the adaptation to signal statistics in ADPCM consists simply of an adaptive scale factor before quantizing the difference in the DPCM encoder. ADPCM was developed in the early 1970s at Bell Labs for voice coding, by P. Cummiskey, N. S. Jayant and James L. Flanagan

PDM

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

WAV / WAVE

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







Looping

  • What apps for saving WAV files with embedded loop point data? - Page 2 — Audiobus Forum - an award-winning music app for iPhone and iPad which lets you use your other music apps together. Chain effects on your favourite synth, run the output of apps or Audio Units into an app like GarageBand or Loopy, or select a different audio interface output for each app. Route MIDI between apps — drive a synth from a MIDI sequencer, or add an arpeggiator to your MIDI keyboard — or sync with your external MIDI gear. And control your entire setup from a MIDI controller. Download on the App Store Audiobus is the app that makes the rest of your setup better.


Broadcast WAV

  • WP: Broadcast_Wave_Format - an extension of the popular Microsoft WAV audio format and is the recording format of most file-based non-linear digital recorders used for motion picture, radio and television production. It was first specified by the European Broadcasting Union in 1997, and updated in 2001 and 2003. The purpose of this file format is the addition of metadata to facilitate the seamless exchange of sound data between different computer platforms and applications. It specifies the format of metadata, allowing audio processing elements to identify themselves, document their activities, and supports timecode to enable synchronization with other recordings. This metadata is stored as extension chunks in a standard digital audio WAV file.


  • BWF MetaEdit - developed by the Federal Agencies Digitization Guidelines Initiative (FADGI) supported by AudioVisual Preservation Solutions.This tool permits embedding, editing, and exporting of metadata in Broadcast WAVE Format (BWF) files. This tool can also enforce metadata guidelines developed by the Federal Agencies Audio-Visual Working Group, as well as recommendations and specifications from the European Broadcasting Union (EBU), Microsoft, and IBM.


RF64


  • WP: RF64 - a BWF-compatible multichannel audio file format enabling file sizes to exceed 4 GB. It has been specified by the European Broadcasting Union. It has been accepted as the ITU recommendation ITU-R BS.2088.The file format is designed to meet the requirements for multichannel sound in broadcasting and audio archiving. It is based on the Microsoft RIFF/WAVE format and Wave Format Extensible for multichannel parameters. Additions are made to the basic specification to allow for more than 4 GB file sizes when needed (the new maximum filesize is now approximately 16 exabytes). The format is transparent to the BWF and all its supplements and chunks.


AU

  • WP: Au_file_format - a simple audio file format introduced by Sun Microsystems. The format was common on NeXT systems and on early Web pages. Originally it was headerless, being simply 8-bit µ-law-encoded data at an 8000 Hz sample rate. Hardware from other vendors often used sample rates as high as 8192 Hz, often integer multiples of video clock signal frequencies. Newer files have a header that consists of six unsigned 32-bit words, an optional information chunk and then the data (in big endian format). Although the format now supports many audio encoding formats, it remains associated with the µ-law logarithmic encoding. This encoding was native to the SPARCstation 1 hardware, where SunOS exposed the encoding to application programs through the /dev/audio interface. This encoding and interface became a de facto standard for Unix sound.


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.


  • https://github.com/lieff/minimp3 - Minimalistic, single-header library for decoding MP3. minimp3 is designed to be small, fast (with SSE and NEON support), and accurate (ISO conformant). You can find a rough benchmark below, measured using perf on an i7-6700K, IO included, no CPU heat to address speedstep:


Encoding

LAME


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


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

Splitting

mp3splt
  • mp3splt - a utility to split mp3, ogg vorbis and native FLAC files selecting a begin and an end time position, without decoding. It's very useful to split large mp3/ogg vorbis/FLAC to make smaller files or to split entire albums to obtain original tracks. If you want to split an album, you can select split points and filenames manually or you can get them automatically from CDDB (internet or a local file) or from .cue files. Supports also automatic silence split, that can be used also to adjust cddb/cue splitpoints. Trimming using silence detection is also available. You can extract tracks from Mp3Wrap or AlbumWrap files in few seconds. For mp3 files, both ID3v1 & ID3v2 tags are supported. Mp3splt-project is split in 3 parts : libmp3splt, mp3splt and mp3splt-gtk.
unflac
split2flac
Pcutmp3
  • Pcutmp3 - a Java based program that lets you cut and trim MP3 files losslessly (i.e. without any quality loss as there is no re-encoding). Ideal for removing adverts or unwanted intros/outros from your radio mixes. Originally created by Sebastian Gesemann it is now maintained by Christopher Banes.
lossless-cut
quelcom
  • https://github.com/posixru/quelcom - provides assorted tools to perform simple editing operations on MP3 and WAV audio files. These include fading, check-and-clean, informational extraction and lossless cutting and joining without reencoding.


MP3-Splitter


Flacon
  • Flacon - extracts individual tracks from one big audio file containing the entire album of music and saves them as separate audio files. To do this, it uses information from the appropriate CUE file. Besides, Flacon makes it possible to conveniently revise or specify tags both for all tracks at once or for each tag separately.
album-splitter
  • https://github.com/crisbal/album-splitter - Do you have a music album as a single file (locally or on YouTube), with all its tracks joined together? Do you want to split that album in its single tracks? Do you want to tag these tracks so your music player can get all the required info from them?


WavePad
  • Audio Editing Software. Sound, Music, Voice & Mp3 Editor - This audio editing software is a full-featured professional audio and music editor for Windows and Mac. It lets you record and edit music, voice and other audio recordings. When editing audio files, you can cut, copy and paste parts of recordings, and then add effects like echo, amplification and noise reduction. WavePad works as a wav or mp3 editor, but it also supports a number of other file formats including vox, gsm, wma, real audio, au, aif, flac, ogg, and more.

Non-commercial usage only.

mp3DirectCut
  • mp3DirectCut - a fast and extensive audio editor and recorder for encoded MP3. Without re-encoding you can directly cut, crop or split your MP3 and AAC tracks, change the volume on MP3 and much more. Direct editing saves encoding time and preserves the original audio quality of your tracks. The built in recorder creates MP3 on the fly. By using Cue sheets, Pause detection or Auto cue you can easily divide long files.

Metadata






  • id3reader - a Python module that reads ID3 metadata tags in MP3 files. It can read ID3v1, ID3v2.2, ID3v2.3, or ID3v2.4 tags. It does not write tags at all.



  • https://github.com/quodlibet/mutagen - a Python module to handle audio metadata. It supports ASF, FLAC, MP4, Monkey's Audio, MP3, Musepack, Ogg Opus, Ogg FLAC, Ogg Speex, Ogg Theora, Ogg Vorbis, True Audio, WavPack, OptimFROG, and AIFF audio files. All versions of ID3v2 are supported, and all standard ID3v2.4 frames are parsed. It can read Xing headers to accurately calculate the bitrate and length of MP3s. ID3 and APEv2 tags can be edited regardless of audio format. It can also manipulate Ogg streams on an individual packet/page level.
  • eyeD3 - 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

  • WP: 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

  • Ogg is a multimedia container format, and the native file and stream format for the Xiph.org multimedia codecs.

Container format.

  • WP: Vorbis_comment - a metadata container used in the Vorbis, FLAC, Theora, Speex and Opus file formats. It allows information such as the title, artist, album, track number or other information about the file to be added to the file itself. However, as the official Ogg Vorbis documentation notes, “[the comment header] is meant for short, text comments, not arbitrary metadata; arbitrary metadata belongs in a separate logical bitstream (usually an XML stream type) that provides greater structure and machine parseability.”
  • https://github.com/manxorist/rogg - a small library I wrote for manipulating Ogg streams in memory.This makes it convenient to write certain quick scripts for checkingand fixing simple bitstream errors in mmap()'d files.

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.

Best lossy audio format, replaces Vorbis and Speex.




ffmpeg -i input -acodec libopus -b:a bitrate -vbr on -compression_level 10 output


  • https://github.com/vlazzarini/opcode_compiler - experimental opcode builds on the initial work by Michael Goggins, and is based on the llvm/clang interpreter example code. It provides a just-in-time C module compiler, which can be used to add new opcodes to Csound on-the-fly.

Vorbis

Speex

  • https://www.speex.org
    • WP: Speex - a lossy audio compression format specifically tuned for the reproduction of human speech and also a free software speech codec that may be used on VoIP applications and podcasts. It is based on the CELP speech coding algorithm. Speex claims to be free of any patent restrictions and is licensed under the revised (3-clause) BSD license. It may be used with the Ogg container format or directly transmitted over UDP/RTP. It may also be used with the FLV container format. The Speex designers see their project as complementary to the Vorbis general-purpose audio compression project.


  • Codec 2 | Rowetel - Codec 2 is an open source speech codec designed for communications quality speech between 700 and 3200 bit/s. The main application is low bandwidth HF/VHF digital radio. It fills a gap in open source voice codecs beneath 5000 bit/s and is released under the GNU Lesser General Public License (LGPL).

The Codec 2 project also contains several modems (FDMDV, COHPSK and mFSK) carefully designed for digital voice over HF radio; GNU Octave simulation code to support the codec and modem development; and FreeDV – an open source digital voice protocol that integrates the modems, codecs, and FEC. FreeDV is available as a GUI application, an open source library (FreeDV API), and in hardware (the SM1000 FreeDV adaptor).


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.


flac --best --keep-foreign-metadata input.wav -f


metaflac --list file.flac
  # list all metadata of a FLAC file



aptX

  • WP: AptX - a family of proprietary audio codec compression algorithms currently owned by Qualcomm. The original aptX algorithm was developed in the 1980s by Dr. Stephen Smyth as part of his Ph.D. research at Queen's University Belfast School of Electronics, Electrical Engineering and Computer Science; its design is based on time domain ADPCM principles without psychoacoustic auditory masking techniques.

Codec 2

  • Codec 2 - Codec 2 is an open source speech codec designed for communications quality speech between 700 and 3200 bit/s. The main application is low bandwidth HF/VHF digital radio. It fills a gap in open source voice codecs beneath 5000 bit/s and is released under the GNU Lesser General Public License (LGPL). The Codec 2 project also contains several modems (FDMDV, COHPSK and mFSK) carefully designed for digital voice over HF radio; GNU Octave simulation code to support the codec and modem development; and FreeDV – an open source digital voice protocol that integrates the modems, codecs, and FEC. FreeDV is available as a GUI application, an open source library (FreeDV API), and in hardware (the SM1000 FreeDV adaptor).

Lyra

STEM

See DJing#Stems

WavPack

  • WavPack - a completely open audio compression format providing lossless, high-quality lossy, and a unique hybrid compression mode. For version 5.0.0, several new file formats and lossless DSD audio compression were added, making WavPack a universal audio archiving solution.

QOA

  • https://github.com/phoboslab/qoa - QOA, The “Quite OK Audio Format” for fast, lossy audio compressionSingle-file MIT licensed library for C/C++See qoa.h for the documentation and format specification. [35]

More info at: https://phoboslab.org/log/2023/02/qoa-time-domain-audio-compressionAudio samples in WAV & QOA format can be found at: https://phoboslab.org/files/qoa-samples/

Descript

  • Descript Audio Codec
    • https://github.com/descriptinc/descript-audio-codec - State-of-the-art audio codec with 90x compression factor. Supports 44.1kHz, 24kHz, and 16kHz mono/stereo audio. This repository contains training and inference scripts for the Descript Audio Codec (.dac), a high fidelity general neural audio codec, introduced in the paper titled High-Fidelity Audio Compression with Improved RVQGAN.

Older

DSD / SACD

  • WP: Direct_Stream_Digital - DSD is the name of a trademark used by Sony and Philips for their system of digitally recreating audible signals for the Super Audio CD (SACD). DSD uses pulse-density modulation encoding—a technology to store audio signals on digital storage media that are used for the SACD. The signal is stored as delta-sigma modulated digital audio, a sequence of single-bit values at a sampling rate of 2.8224 MHz (64 times the CD audio sampling rate of 44.1 kHz, but only at 1/32768 of its 16-bit resolution). Noise shaping occurs by use of the 64-times oversampled signal to reduce noise and distortion caused by the inaccuracy of quantization of the audio signal to a single bit. Therefore, it is a topic of discussion whether it is possible to eliminate distortion in one-bit delta-sigma conversion.


  • YouTube: DSD Explained part 1 - At the 1996 AES Convention in Copenhagen the formerly CBS Research Lab introduced Direct Stream Digital, DSD for short, as a archive format that offered compact files while it contains sufficient information for conversion to sample rates as high as 352.8 kHz - unheard of in 1996. From there is went to SACD and now to DSD downloads. What is DSD all about? Hans Beekhuyzen explains.


  • Super Audio CD decoder - a command-line application which takes a Super Audio CD source and extracts a 24-bit high resolution wave file. It handles both DST and DSD streams. The application reads the following input: SACD image files (*.iso), Sony DSF files (*.dsf), Philips DSDIFF files (*.dff). Supported output sample rates: 88.2KHz, 96KHz, 176.4KHz, 192KHz


  • What is DoP (DSD over PCM)? - It involves taking groups of 16 adjacent 1-bit  samples from a DSD stream and packing them into the lower 16 bits of a 24/176.4 data stream. Data from the other channel of the stereo pair is packed the same way. A specific marker code in the top 8 bits identifies the data stream as DoP, rather than PCM. The resulting DoP stream can be transmitted through existing 24/192-capable USB, AES, Dual AES or SPDIF interfaces to a DoP-compatible DAC, which reassembles the original stereo DSD data stream COMPLETELY UNCHANGED. If something goes wrong and the data stream is decoded as PCM, the output will be low-level noise with faint music in the back ground, so it fails safely. This can happen if the computer erases the marker code by applying a volume adjustment.


  • WP: Digital_eXtreme_Definition - or DXD, a digital audio format that originally was developed for editing high-resolution recordings recorded in DSD, the audio standard used on Super Audio CD (SACD). As the 1-bit DSD format used on SACD is not suitable for editing, alternative formats such as DXD or DSD-Wide must be used during the mastering stage. In contrast with DSD-Wide or DSD Pure which offers level, EQ, and crossfade edits at the DSD sample rate (64fs, 2.822 MHz), DXD is a PCM signal with 24-bit resolution (8 bits more than the 16 bits used for Red Book CD) sampled at 352.8 kHz – eight times 44.1 kHz, the sampling frequency of Red Book CD. The data rate is 8.4672 Mbit/s per channel – three times that of DSD64.





  • https://github.com/DocMarty84/sacd - Converts SACD image files, Philips DSDIFF and Sony DSF files to 24-bit high resolution wave files. Handles both DST and DSD streams. THIS IS ONLY A CLONE OF THE OFFICIAL REPO!!!

MQA

AMR

Dolby Digital / AC-3

  • WP: Dolby_Digital - the name for audio compression technologies developed by Dolby Laboratories. Originally named Dolby Stereo Digital until 1994, except for Dolby TrueHD, the audio compression is lossy. The first use of Dolby Digital was to provide digital sound in cinemas from 35mm film prints; today, it is now also used for other applications such as TV broadcast, radio broadcast via satellite, DVDs, Blu-ray discs and game consoles. This format has different names: Dolby Digital, DD (an abbreviation for Dolby Digital, often combined with channel count; for instance, DD 2.0, DD 5.1), AC-3 (Audio Codec 3, Advanced Codec 3, Acoustic Coder 3. [These are backronyms. Adaptive Transform Acoustic Coding 3 is a separate format developed by Sony.]). ATSC A/52 is name of the standard.


  • WP: Dolby_Digital_Plus - also known as Enhanced AC-3 (and commonly abbreviated as DD+ or E-AC-3, or EC-3) is a digital audio compression scheme developed by Dolby Labs for transport and storage of multi-channel digital audio. It is a successor to Dolby Digital (AC-3), also developed by Dolby, and has a number of improvements including support for a wider range of data rates (32 Kbit/s to 6144 Kbit/s), increased channel count and multi-program support (via substreams), and additional tools (algorithms) for representing compressed data and counteracting artifacts. While Dolby Digital (AC-3) supports up to 5 full-bandwidth audio channels at a maximum bitrate of 640 Kbit/s, E-AC-3 supports up to 15 full-bandwidth audio channels at a maximum bitrate of 6.144 Mbit/s. The full set of technical specifications for E-AC-3 (and AC-3) are standardized and published in Annex E of ATSC A/52:2012, as well as Annex E of ETSI TS 102 366 V1.2.1 (2008–08), published by the Advanced Television Systems Committee.


Dolby AC-4

  • WP: Dolby_AC-4 - Dolby AC-4 is an audio compression standard supporting multiple audio channels and/or audio objects. Support for 5.1 channel audio is mandatory and additional channels up to 7.1.4 are optional. AC-4 provides a 50% reduction in bit rate over AC-3/Dolby Digital Plus.

Dolby TrueHD

  • WP: Dolby_TrueHD - a lossless multi-channel audio codec developed by Dolby Laboratories which is used in home-entertainment equipment such as Blu-ray Disc players and A/V receivers. It is one of the successors to the Dolby Digital (AC-3) surround sound codec, which is used as the audio standard for the DVD-Video format. In this application, Dolby TrueHD competes with DTS-HD Master Audio, a lossless codec from DTS.

Dolby TrueHD uses Meridian Lossless Packing (MLP) as its mathematical basis for compressing audio samples. MLP is also used in the DVD-Audio format, but details of Dolby TrueHD and the MLP Lossless format as used on DVD-Audio differ substantially. A Dolby TrueHD bitstream can carry up to 16 discrete audio channels. Sample depths up to 24 bits/sample and audio sample rates up to 192 kHz are supported. Like the more common legacy codec Dolby Digital, Dolby TrueHD bitstreams carry program metadata. Metadata is separate from the coding format and compressed audio samples, but stores relevant information about the audio waveform and provides control over the decoding process. For example, dialog normalization and dynamic range compression are controlled by metadata embedded in the Dolby TrueHD bitstream. Similarly, a Dolby Atmos encoded Dolby TrueHD stream contains metadata to extract and place the objects in relevant positions. Dolby TrueHD is a variable bit-rate codec.

Dirac

ATRAC / Minidisc

  • WP: Adaptive_Transform_Acoustic_Coding - a family of proprietary audio compression algorithms developed by Sony. MiniDisc was the first commercial product to incorporate ATRAC in 1992. ATRAC allowed a relatively small disc like MiniDisc to have the same running time as CD while storing audio information with minimal loss in perceptible quality. Improvements to the codec in the form of ATRAC3, ATRAC3plus, and ATRAC Advanced Lossless followed in 1999, 2002, and 2006 respectively. Other MiniDisc manufacturers such as Sharp and Panasonic also implemented their own versions of the ATRAC codec. Sony has all but dropped the ATRAC related codecs in the USA and Europe and in their SonicStage powered 'Connect' Music Service (Sony's equivalent of iTunes) on 31 March 2008. However, it is being continued in Japan and various other countries.




NICAM

  • WP: 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

  • WP: Phonograph - a device, invented in 1877, for the mechanical recording and reproduction of sound. In its later forms, it is also called a gramophone (as a trademark since 1887, as a generic name in the UK since 1910), or, since the 1940s, a record player. The sound vibration waveforms are recorded as corresponding physical deviations of a spiral groove engraved, etched, incised, or impressed into the surface of a rotating cylinder or disc, called a "record". To recreate the sound, the surface is similarly rotated while a playback stylus traces the groove and is therefore vibrated by it, very faintly reproducing the recorded sound. In early acoustic phonographs, the stylus vibrated a diaphragm which produced sound waves which were coupled to the open air through a flaring horn, or directly to the listener's ears through stethoscope-type earphones.


  • WP: Phonograph_cylinder - the earliest commercial medium for recording and reproducing sound. Commonly known simply as "records" in their era of greatest popularity (c. 1896–1915), these hollow cylindrical objects have an audio recording engraved on the outside surface, which can be reproduced when they are played on a mechanical cylinder phonograph. In the 1910s, the competing disc record system triumphed in the marketplace to become the dominant commercial audio medium.
  • WP: Phonograph_record - also known as a gramophone record, especially in British English, or record) is an analog sound storage medium in the form of a flat disc with an inscribed, modulated spiral groove. The groove usually starts near the periphery and ends near the center of the disc. At first, the discs were commonly made from shellac; starting in the 1950s polyvinyl chloride became common. In recent decades, records have sometimes been called vinyl records, or simply vinyl, although this would exclude most records made until after World War II.


  • WP: Magnetic_cartridge - more commonly called a phonograph cartridge or phono cartridge or (colloquially) a pickup, is an electromechanical transducer used in the playback of analog sound recordings called records on a record player, now commonly called a turntable because of its most prominent component but formally known as a phonograph in the US and a gramophone in the UK. The cartridge contains a removable or permanently mounted stylus, the tip - usually a gemstone like diamond or sapphire - of which makes physical contact with the record's groove. In popular usage and in disc jockey jargon, the stylus, and sometimes the entire cartridge, is often called the needle. As the stylus tracks the serrated groove, it vibrates a cantilever on which is mounted a permanent magnet which moves between the magnetic fields of sets of electromagnetic coils in the cartridge (or vice versa: the coils are mounted on the cantilever, and the magnets are in the cartridge). The shifting magnetic fields generate an electrical current in the coils. The electrical signal generated by the cartridge can be amplified and then converted into sound by a loudspeaker.




Playlist formats

playlist='play.m3u' ; if [ -f $playlist ]; then rm $playlist ; fi ; for f in *.mp3; do echo "$(pwd)/$f" >> "$playlist"; done
  # create m3u playlist with absolute file paths


ADF

  • EBU ADM Guidelines - standardised metadata model for describing the technical properties of audio. ADM metadata can be attached to audio files to ensure the audio is correctly handled. These pages contain information to help you understand the ADM and provide examples and a reference to use it.



  • https://github.com/ebu/libadm - The libadm library is a modern C++11 library to parse, modify, create and write ITU-R BS.2076 conformant XML. It works well with the header-only library libbw64 to write ADM related applications with minimal dependencies.


  • Audio Definition Model Software - BBC R&D - The Audio Definition Model is an ITU specification of metadata that can be used to describe object-based audio, scene-based audio and channel-based audio. It can be included in BWF WAVE files or used as a streaming format in production environments. The BBC Audio Toolbox is a suite of C++ libraries for manipulating object-based audio and ADM based BWF files.



SoundStream

Playback

See also Playback, Sampling, Distros#Media

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.

Random Parallel Player

loopnaut

mfl-gramophone

SQA: the Stuttery QLab Alternative

  • https://github.com/eeeeeta/sqa - This project aims to create an audio player & cue system for live shows and staged productions, à la Figure53's QLab. All its code is written in the Rust programming language, a new language that prevents memory unsafety and improves programming ergonomics. This one large repo contains many different crates that all help accomplish that aim.

PEAR

  • https://github.com/esologic/pear - a tool for sound installations. Take a directory with .wav files named in numeric order and play them over usb sound devices attached to the host computer over and over forever, looping all files once the longest one finishes.

Recording

fmedia

  • fmedia - a fast asynchronous media player/recorder/converter for Windows, Linux and FreeBSD. It provides smooth playback and recording even if devices are very slow. It's highly customizable and can be easily extended with additional plugins. Its low CPU & memory consumption saves energy when running on a notebook's battery. Play or convert audio files, record new audio tracks from microphone, save songs from Internet radio, and much more! fmedia is free and open-source project, and you can use it as a standalone application or as a library for your own software. fmedia can decode: .mp3, .ogg (Vorbis, Opus), .opus, .m4a/.mp4 (AAC, ALAC, MPEG), .mka/.mkv (AAC, ALAC, MPEG, Vorbis), .avi (AAC, MPEG), .aac, .mpc, .flac, .ape, .wv, .wav. fmedia can encode into: .mp3, .ogg, .opus, .m4a (AAC), .flac, .wav.

phiola

  • https://github.com/stsaz/phiola - fast audio player, recorder, converter for Windows, Linux & Android. Its low CPU consumption conserves the notebook/phone battery. Its fast startup time allows using it from custom scripts on a "play-and-exit" or "record-and-exit" basis. It's completely portable (all codecs are bundled) - you can run it directly from a read-only flash drive. It's a free and open-source project, and you can use it as a standalone application or as a library for your own software.

arecord

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

audio-recorder

rtutil

  • https://github.com/ashafq/rtutil - Simple CLI PCM audio file recorder/player. A small weekend project under 10K LOC using C++20 utilizing RtAudio and Libsndfile.

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.


ecasound -a:1,2 -i jack -o jack -a:1 -elv2:http://calf.sourceforge.net/plugins/Compressor,0,1,0,0,0,0,0.015625,20,0.01,2000,1,1,0,0,1,1 -a:2 -elv2:http://calf.sourceforge.net/plugins/Limiter,0,1,0.587231,0,0,0,0,0,0,0,0,0.0625,0.1,1000,1,1,0,0.5,4


  • Ecasound Mastering Interface - a Python front end to ecasound. It looks a lot like Rackmount effect and can be used to create an Ecasound Chain Setup while playing with parameters in real time. It supports mixing, recording, filtering, and processing and can export to ECS files. It supports all ecasound options, chain operators, and controllers.


  • Visecas - a graphical user interface for Ecasound (http://eca.cx/ecasound), a software package written by Kai Vehmanen (k@eca.cx) which is designed for multitrack audio processing. It starts Ecasound as a child process and communicates via a pipe using Ecasound's InterActive Mode (IAM) commands.


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.

jack_playrec

screcord.lv2

jamRecord.lv2

Freeze

  • https://github.com/nickolas360/freeze - an LV2 plugin for freezing tracks in a digital audio workstation—that is, temporarily rendering a track as audio to reduce CPU/DSP load, as tracks with large chains of CPU-heavy effects can make buffer underruns (xruns) quite common. Some DAWs like Ardour support track freezing to a certain extent, but Ardour, for example, cannot freeze MIDI tracks.

QJackRcd

  • qjackrcd - a simple stereo recorder for Jack with few features as silence processing for automatic pause, file splitting, background file post-processing. It can be used with QJackCtl.

audio coffin

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.

listener

asak

  • https://github.com/chaosprint/asak - A cross-platform audio recording/playback CLI tool with TUI, written in Rust. The goal is to be an audio Swiss Army Knife (asak), like SoX but more interative and fun.

Transcoding

  • WP: Transcoding - the direct digital-to-digital conversion of one encoding to another,[1] such as for movie data files (e.g., PAL, SECAM, NTSC), audio files (e.g., MP3, WAV), or character encoding (e.g., UTF-8, ISO/IEC 8859). This is usually done in cases where a target device (or workflow) does not support the format or has limited storage capacity that mandates a reduced file size,[2] or to convert incompatible or obsolete data to a better-supported or modern format.

SoundConverter

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

fre:ac

  • fre:ac - a free audio converter and CD ripper with support for various popular formats and encoders. It currently converts between MP3, MP4/M4A, WMA, Ogg Vorbis, FLAC, AAC, WAV and Bonk formats. With fre:ac you easily rip your audio CDs to MP3 or WMA files for use with your hardware player or convert files that do not play with other audio software. You can even convert whole music libraries retaining the folder and filename structure.The integrated CD ripper supports the CDDB/freedb online CD database. It will automatically query song information and write it to ID3v2 or other title information tags.
    • https://github.com/enzo1982/freac - a free and open source audio converter. It supports audio CD ripping and tag editing and converts between various audio file formats.


audiomap

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


transfercoder


AudioMove

  • AudioMove - a simple, easy to use GUI-based batch audio file copy-and-conversion program.


flacsync


lackey


caudec

  • caudec - a command-line utility for GNU/Linux and OS Ⅹ that transcodes (converts) audio files from one format (codec) to another. It leverages multi-core CPUs with lots of RAM by using a ramdisk, and running multiple processes concurrently (one per file and per codec). It is Free Software, licensed under the GNU General Public License.

ffcvt

garrett

  • https://github.com/hannesbraun/garrett - converts the given audio files into the "Waveform Audio File Format" (WAVE) with a static bit depth of 16 bits. You can choose between two output sample rates: 44100 Hz and 48000 Hz. The supported input formats are: WAVE MP3 FLAC AIFF

Analysis

Sonic Visualiser

  • Sonic Visualiser - an application for viewing and analysing the contents of music audio files. The aim of Sonic Visualiser is to be the first program you reach for when want to study a musical recording rather than simply listen to it. We hope Sonic Visualiser will be of particular interest to musicologists, archivists, signal-processing researchers and anyone else looking for a friendly way to take a look at what lies inside the audio file. Sonic Visualiser is Free Software, distributed under the GNU General Public License (v2 or later) and available for Linux, OS/X, and Windows. It was developed at the Centre for Digital Music at Queen Mary, University of London.

Don't forget to install at least the QM vamp plugins.

Baudline

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

MDFourier

  • MDfourier: An audio analysis tool for gaming hardware - an open source software solution created to compare audio signatures and generate a series of graphs that show how they differ. The software consists of two separate programs, one that produces the signal for recording from the console and the other that analyses and displays the audio comparisons. The information gathered from the comparison results can be used in a variety of ways: to identify how audio signatures vary between systems, to detect if the audio signals are modified by audio equipment, to find if modifications resulted in audible changes, to help tune emulators, FPGA implementations or mods, etc. [40]

Open Sound Meter

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.


GTKWave

  • https://github.com/gtkwave/gtkwave - a fully featured GTK+ based wave viewer for Unix and Win32 which reads LXT, LXT2, VZT, FST, and GHW files as well as standard Verilog VCD/EVCD files and allows their viewing.


zrtstr

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

Pydiogment

  • https://github.com/SuperKogito/pydiogment - aims to simplify audio augmentation. It generates multiple audio files based on a starting mono audio file. The library can generates files with higher speed, slower, and different tones etc.

audiomentations

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

AudioVideoAnalysis

Toscanalyzer

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

libroda

  • librosa - a python package for music and audio analysis. It provides the building blocks necessary to create music information retrieval systems.

QLoud

freqresp

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.

QLoud

PORC

  • https://github.com/greenm01/porc - Python Open Room Correction, PORC now includes mixed-phase compensation (see below)! DSP Loudspeaker-Room correction filter wizard; transfer function modeling and equalization by fixed-pole parallel filters. Algorithm ported to Python by Mason A. Green, based on the work of Dr. Balazs Bank: http://home.mit.bme.hu/~bank/parfilt/

PostQC

  • PostQC - a tool for measuring, logging and reporting audio levels for professional audio production and post production studios.

impulseresponse.py

Gist

timbreIDLib

  • https://github.com/wbrent/timbreIDLib - a library of audio analysis externals for Pure Data. The classification external [timbreID] accepts arbitrary lists of audio features and attempts to find the best match between an input feature and previously stored training instances. The library can be used for a variety of real-time and non-real-time applications, including sound classification, sound searching, sound visualization, automatic segmenting, ordering of sounds by timbre, key and tempo estimation, and concatenative synthesis.

musii-kit

  • https://github.com/otsob/musii-kit - A collection of tools for computational musicology, especially using Jupyter Notebooks for music analysis. This has been greatly inspired by the example notebooks associated with the excellent book Fundamentals of Music Processing.

Mixers

Command-line mixers

amixer

  • 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

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

kbd2jackmix

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

jack_switch

jack-balancer

ncurses mixers

alsamixer

aumix

Graphical mixers

Kmix

  • 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

Recommended.

QasMixer

  • QasMixer - a desktop mixer application for ALSA's "Simple Mixer Interface".

QasHctl

  • QasHctl - a mixer for ALSA's more complex "High level Control Interface".

alsamixergui

  • alsamixergui - a FLTK based frontend for alsamixer. It is written directly on top of the alsamixer source, leaving the original source intact, only adding a couple of ifdefs, and some calls to the gui part, so it provides exactly the same functionality, but with a graphical userinterface.

gnome-alsamixer

volti

Buggy, forgets card sometimes, menu/preferences don't open.

Xmixer

XMMIX

  • XMMIX - Motif Audio Mixer

NewMixer

DAMC

Mixxc

  • https://github.com/Elvyria/Mixxc - a minimalistic and customizable volume mixer, created to seamlessly complement desktop widgets. Currently, it supports only pulseaudio and pipewire (through the pulseaudio interface, by utilizing libpulseaudio to receive audio events.

Web mixer

alsa-json-gateway

  • https://github.com/fulup-bzh/AlsaJsonGateway - Provides an HTTP REST interface to ALSA mixer for HTML5 UI support. The main objective of AJG is to decouple ALSA from UI, this especially for Music Oriented Sound boards like Scarlett Focurite and others.

JACK mixers

Non Mixer

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

See also non-midi-mapper [41]

mx2482

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

JackMix

jack_mixer


jackmixdesk

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

JackMaster

  • JackMaster - "Master Console" for the jack-audio-connection-kit. Number of inputs/subs and screen layout can only be changed by recompiling.

qtjmix

jackmaster

jack-volume

JJack

injector

MU1

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

audio-multiplexer

EQUIS

  • https://codeberg.org/obsoleszenz/EQUIS - a 8 Channel DJ/Performance Mixer for Linux & JACK. It offers an EQ inspired by the Playdifferently Model1. This means each channel has a highpass/lowpass and sweepable bell eq for smooth eqing. To fullfill further filtering needs, all channels can be optionally assigned to one of two subfilters. Those subfilters are inspired by the Xone:96 DUAL VCF Filter system. For effects EQUIS offers 2 send/return channels. This way you can send each channel to an external effect. EQUIS offers 2 seperate CUE systems for pre-listening the different channels or main signal on headphones. This project is meant to be extended and played around with. Thanks to FAUST it's pssible to tweak the filters/eqs and whole DSP chain relatively easy. Also you can write your own midi mapping to integrate your own MIDI controller.

LV2 mixers

Some of these are also standalone.

xfade.lv2

balance.lv2

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

sonejostudios






  • https://github.com/sonejostudios/Mixer4x - A simple 4-channel stereo mixer. The main goal is to use it as a submixer on a 4 channel track, but you can use it everywhere you need a small 4 channel stereo mixer.




BalanceGain / BalanceWidth

vopa


x42-mixtrix

matrixmixer.lv2

BadAmp

BAmp

Simple Amplifier

Plujain

  • https://github.com/Houston4444/plujain-plugins - utility LV2 plugins. The fadeswitch is an audio mono switch that progressly fade between the 2 channels outs. The triswitch follow the same principle with 3 outputs. For the Quadriswitch, guess !

Kn0ck0ut

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

intersect-lv2

  • https://github.com/sboukortt/intersect-lv2 - an LV2 plugin which, given a stereo audio stream, “expands” it to three channels. Everything that is present in both input channels will be in the center channel of the output, and what is specific to each channel will be in the corresponding output channel. This can be useful, for example, to rediscover some of your favorite music by hearing things that you had never noticed before. (With that said, note that it does not necessarily work equally well on all songs, depending on how they were mixed.)

sm.lv2

  • https://github.com/nettings/sm.lv2 - A simple speaker management LV2 plugin with global master volume and per-channel trim, delay, and low-shelf.This plugin lets you optimize a stereo or multichannel speaker system to your listening environment.

tinyamp.lv2

mod-volume-lv2

SendMixer

Xfade1to2st

Other mixers

ladspa-xfade

BackgroundMusic

faderratic

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

push-to-talk-xcb-alsa

  • https://github.com/xkr47/push-to-talk-xcb-alsa - Push-To-Talk using global hotkey in X11, muting/unmuting an alsa mixer recording control. Unmutes the microphone when you press the configured hotkey (by default Hyper_L + Shift_R, and mutes it back when you release it. It also monitors the muting state and fixes it in case it changes unexpectedly, for example when plugging a headset into your laptop and the headset mute status happens to be wrong.

Metering


  • https://en.m.wikipedia.org/wiki/K-system - an audio level measuring technique proposed by mastering engineer Bob Katz in the paper "An integrated approach to Metering, Monitoring and Levelling". It proposes a studio monitor calibration system and a set of meter ballistics to help engineers produce consistent sounding music while preserving appropriate dynamic range.[

JACK

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.

mod-peakmeter

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.

jack-peak-meter

vu-meter

  • https://github.com/xkr47/vu-meter - Audio VU meter for JACK with any number of channels.This is heavily inspired by the cadence-jackmeter included in the Cadence tools. I rewrote it in Rust, with freely configurable amount of channels through commandline parameters. It uses XCB i.e. the X11 protocol for graphics. It does NOT currently autoconnect to any source.

jack_led_peak

  • https://github.com/fps/jack_led_peak - A small jack utility to drive LEDs based on the peak values of the inputs. This was developed primarily for use on a raspberry pi4 (the default line offsets), but it should be usable on any linux system that has some LEDs attached via GPIO lines addressable by libgpiod.

vu-meter

  • https://github.com/xkr47/vu-meter - Audio VU meter for JACK with any number of channels. This is heavily inspired by the cadence-jackmeter included in the Cadence tools. I rewrote it in Rust, with freely configurable amount of channels through commandline parameters. It uses XCB i.e. the X11 protocol for graphics. Thus if your desktop is using Wayland, you will also have to configure Xwayland for this program to work.

LV2

meters.lv2

modmeter.lv2

loudness-meter.lv2

traKmeter

K-Meter

  • K-Meter - Implementation of a K-System meter according to Bob Katz’ specifications.

Visualisation

See Visuals, Lighting

Oscilloscope

XXY Oscilloscope

woscope

xoscope

  • xoscope - a digital oscilloscope for Linux

x42-scope

jack_oscrolloscope

  • 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

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

QOscC

  • QOscC - a highly flexible and configurable software Oscilloscope with a large number of features. This includes support for any number of audio devices (ALSA or OSS), each with any number of channels. Each scope display can be configured individually to different display types and variants. e.g. you can chose from standard y-t mode (as on an usual oscilloscope), xy mode (e.g. for measuring the phase shift between two signals) of the FFT mode (to view a spectrum plot of the signal). This software is intended for electronic hobyists, who cannot afford a hardware oscilloscope or need a simple spectrum analyzer as well as for musicans for doing basic signal analysis.

jack-analyser

DSSI Oscilloscope

Oscilloscope

PrettyScope

OsciStudio

  • OsciStudio - Convert 3d shapes and animations to sounds (through obj files or blender addons). Modify sounds through a small plugin system. Animate parameters through timelines. Works on Mac OS and Windows (only intel/amd processors). Livecoding in C++ (no STL) $

Spectrum graph

See also Visuals

Cava

X.A.V.A.

  • https://github.com/nikp123/xava - X11 Audio Visualizer for ALSA, also supports audio input from WASAPI (Windows), PortAudio, Pulseaudio, SHMEM, FIFO (MPD), and sndio. Fork of Cava.

Visualiser

  • https://github.com/BlankParenthesis/visualiser - A low level audio visualiser program for Linux using Wayland, Vulkan, and Pipewire, written in Rust. Inspired by X.A.V.A. Supports arbitrary shapes (bars, radial, etc, using 2D vertex formats with attributes.

leafpipe

catnip

HTML5 Audio Visualizer

Spectrogram

xjackfreak

spectrojack

  • spectrojack - A little spectrogram/audiogram/sonogram/whatever for jack. gtk 2 and fftw 3.

Spectrum 3D

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

xspect3d

  • xspect3d - a bespoke, radical drawing algorithm and buffer scheduling paradigm, to render a 3D sonic landscape in real time, at up to several hundred frames a second.

wolf-spectrum

Jack Live Spectrum

  • Jack Live Spectrum - a small (only one file) C program that runs on Linux that will display a frequency spectrum of the live streaming sound as a floating down animation. Below are some still screenshots.

rtfi

Spectrogram

SuperSpectrogram

Photosounder Spiral

  • Photosounder Spiral - a music analysis plugin. It's a fresh take on spectral analysis focused on allowing you to see and understand music and the notes that make it up instantly. This is achieved mainly by coiling the spectrum into a spiral framed by a chromatic circle, thus allowing you to instantly see what's happening musically and spectrally. - $

spectro

scope-tui

Waveform

  • Peaks.js - a JavaScript component from BBC Research and Development that allows users to view and interact with audio waveforms in the browser.Peaks.js uses the HTML <canvas> element to display the waveform at different zoom levels, and synchronise the display to playback of an associated <audio> or <video> element. The component also allows point and segment markers to be added to the waveform, e.g., for distinguishing music from speech, or identifying different music tracks.



  • https://github.com/ayyi/libwaveform - Libwaveform attempts to provide versatile easy-to-use interactive display of audio waveforms for Gtk+-2 and X11 applications. Suitable for anything from simple display, up to a full digital audio workstation.


Various

See Lighting#Visualisation


  • xoscope for Linux - a digital oscilloscope for Linux! ALSA, ESD, and COMEDI data sources; Sweep rates from 2 ns to 2 seconds per division; Eight simultaneous display channels; Scrollable memory buffers; Triggers; Cursors; Both analog and digital inputs; Sweep, accumulate, and strip chart display modes


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



  • 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



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




Phase

Windows VST

  • Voxengo Correlometer free multi-band correlation meter plugin released - a free analog-style stereo multi-band correlation meter AudioUnit, AAX and VST plugin for professional music production applications. It is based on correlation meter found in PHA-979 phase-alignment plugin.Multi-band correlation meter is an advanced way to check for presence of out-of-phase elements in the mix. Broadband correlation metering reports overall phase issues and may misrepresent problems present in select spectral bands, while multi-band correlation meter easily highlights problems present in mid to high frequencies that are not easily heard by ear, but may still reduce clarity of the mix. Another application of multi-band correlation metering is phase- and time-aligning of channels and tracks, especially bass and bass-drum pairs, guitar mic and D.I. source pairs, two-microphone stereo recordings, etc.Correlometer can display 4 to 64 individual spectral bands, with adjustable band quality factor that controls the degree of band’s selectivity. Averaging time of correlation estimator can be adjusted. Correlometer supports side-chain inputs for easy correlation estimation between separate audio tracks.

Feature detection/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 - 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.
  • Find and Download Plugins - listing


  • QM Vamp Plugins - A set of plugins for feature extraction from audio data, using the Vamp plugin format suitable for use in programs such as Sonic Visualiser and Sonic Annotator.VAMP diagramThis plugin set includes note onset detector, beat and barline tracker, tempo estimator, key estimator, tonal change detector, structural segmenter, timbral and rhythmic similarity, wavelet scaleogram, adaptive spectrogram, note transcription, chromagram, constant-Q spectrogram, and MFCC plugins.


  • Segmentino - a Vamp plugin for automatic music structural segmentation, based on an algorithm first used in Mauch et al.'s paper on Using Musical Structure to Enhance Automatic Chord Transcription.


  • Silvet Note Transcription - or Shift-Invariant Latent Variable Transcription, is a Vamp plugin for polyphonic music transcription (from audio to note times and pitches).What can I use it for?In conjunction with a Vamp plugin host like Sonic Visualiser, you can use Silvet to help you work out what notes are being played in a piece of music, for example if you want to learn to play it yourself.You might also use it to study performances for musicological features such as timing and dynamics.Silvet also serves as a useful stable baseline for comparative purposes, for researchers working on other methods related to note transcription.Silvet uses a high-quality and quite flexible method, but it has various limitations which you can find described in the README file. Although you can easily get interesting and useful results for many kinds of music, don't expect it to take you straight from the audio to a complete and readable score!


  • Melodia - automatically estimates the pitch of a song's main melody. More specifically, it implements an algorithm that automatically estimates the fundamental frequency corresponding to the pitch of the predominant melodic line of a piece of polyphonic (or homophonic or monophonic) music.Given a song, the algorithm estimates: When the melody is present and when it is not (a.k.a. voicing detection) The pitch of the melody when it is present


  • HPCP - a vamp plug-in for audio feature extraction that computes the instantaneous evolution of HPCP (Harmonic Pitch Class Profile) of a signal. The HPCP is an approach for chroma feature estimation which represents the pitch content of polyphonic music signals, mapped to a single octave. HPCP have been extensively used for several final applications such as key and chord estimation, similarity computation (cover version identification) and music classification.

auditok

  • https://github.com/amsehili/auditok - 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.

audioid

Audioflux

Tempo

BPM, or beats per minute

bonk

  • 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

  • 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

bpm-tools

  • 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

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

BTrack

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


audio-dsp-midi-trigger

BeatCounter

  • 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

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

WaveBeat

Frequency

Tony

  • Tony - a software program for high quality scientific pitch and note transcription in three steps: automatic visualisation/sonification, easy correction, and export. First, Tony automatically analyses the audio to visualise pitch tracks and notes from monophonic recordings . As a Tony user, you can play back pitches and notes alongside the recording, which makes it easy to spot the inevitable extraction errors. Then you can use several tools that make correction of such errors a breeze, including alternative pitch track selection, octave shift, and easy note split, merge and deletion. Finally, you can export pitch track and note track in .csv (comma-separated values) format, or simply save a session file to continue annotating another time.

libKeyFinder

pitch-detection

Pitch-Tracking

  • https://github.com/orchidas/Pitch-Tracking - Pitch detection algorithmsMethods implemented: YIN ESTIMATOR - YIN, a fundamental frequency estimator for speech and music - Alain de Cheveigné, Hideki Kawahara - Journal of the Acoustical Society of America, 2002. CEPSTRUM - Cepstrum Pitch Determination - A.M.Noll - Journal of the Acoustical Society of America, 1967. MAXIMUM LIKELIHOOD - Maxmium Likelihood Pitch Estimation - James D.Wise, James R.Caprio, Thomas W.Parks - IEEE Transactions on Acoustics, Speech and Signal Processing, 1976. EXTENDED KALMAN FILTER - Real-time Pitch Tracking in Audio Signals with the Extended Complex Kalman Filter - Orchisama Das, Julius O. Smith, Chris Chafe in Proc. of International Conference on Digital Audio Effects, DAFx 2017. Improved Real-time Monophonic Pitch Tracking with the Extended Complex Kalman Filter - Orchisama Das, Julius O. Smith, Chris Chafe - in Journal of the Audio Engineering Society, Vol 68, No. 1/2, 2020.

swipe

Silence

silan

SilentJack

SilenceRemover

  • https://github.com/sagamusix/SilenceRemover - removes silence from the beginning of a WAV or FLAC file. Getting the job done was more important than beautiful code. For example, using FILE* instead of std::ifstream was simply done so that the file feeds directly into libflac.

Essentia / Essentia.js

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


  • Essentia.js - JavaScript library for Music/Audio analysis, powered by Essentia WebAssembly backend.
    • https://github.com/mtg/essentia.js - a JavaScript (JS) library for music/audio signal analysis and processing developed at the Music Technology Group, UPF, Barcelona. The core of library is powered by Essentia C++ library back-end using WebAssembly built via Emscripten along with a high-level JS and TypeScript API and add-on utility modules. ie, You can run an extensive collection of music/audio processing and analysis algorithms/models on your web browser or Node.js runtime applications. It supports both real-time and offline audio analysis use-cases.
  • MTG/essentia.js-tutorial-wac2021: Essentia.js tutorial at Web Audio Conference 2021 - Web Audio is an intrinsic part of the next generation of applications for multimedia content creators, designers, researchers, music tutors, artists, and consumers. New advances in web audio and software for audio analysis, music information retrieval (MIR), and machine learning open up exciting possibilities. We have recently released Essentia.js, based on one of the most popular MIR libraries on the native platform. We have also created various pre-trained deep learning models for inference with TensorFlow.js. In this tutorial, we introduce the key concepts in MIR and cover the basics of using the library for music and audio analysis. We will show example use-cases and assist the participants in building their MIR Web applications.


Meyda.js

  • Meyda - a JavaScript audio feature extraction library. It works with the Web Audio API (or plain old JavaScript arrays) to expose information about the timbre and perceived qualities of sound. Meyda supports both offline feature extraction as well as real-time feature extraction using the Web Audio API. We wrote a paper about it, which is available here.
  • Meyda Tutorial - A tutorial for using Meyda, the Javascript Audio Feature Extraction Library, in Web Audio


openSMILE

  • openSMILE - feature extration tool enables you to extract large audio feature spaces in realtime. It combines features from Music Information Retrieval and Speech Processing. SMILE is an acronym forSpeech & Music Interpretation by Large-space Extraction. It is written in C++ and is available as both a standalone commandline executable as well as a dynamic library. The main features of openSMILE are its capability of on-line incremental processing and its modularity. Feature extractor components can be freely interconnected to create new and custom features, all via a simple configuration file. New components can be added to openSMILE via an easy binary plugin interface and a comprehensive API.

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

jMIR

  • jMIR - an open-source software suite implemented in Java for use in music information retrieval (MIR) research. It can be used to study music in the form of audio recordings, symbolic encodings and lyrical transcriptions, and can also mine cultural information from the Internet. It also includes tools for managing and profiling large music collections and for checking audio for production errors. jMIR includes software for extracting features, applying machine learning algorithms, applying heuristic error error checkers, mining metadata and analyzing metadata.

KeyFinder

polyscribe

kbd-audio

Sufrboard

  • Surfboard: Audio Feature Extraction for Modern Machine Learning - We introduce Surfboard, an open-source Python library for extracting audio features with application to the medical domain. Surfboard is written with the aim of addressing pain points of existing libraries and facilitating joint use with modern machine learning frameworks. The package can be accessed both programmatically in Python and via its command line interface, allowing it to be easily integrated within machine learning workflows. It builds on state-of-the-art audio analysis packages and offers multiprocessing support for processing large workloads. We review similar frameworks and describe Surfboard's architecture, including the clinical motivation for its features. Using the mPower dataset, we illustrate Surfboard's application to a Parkinson's disease classification task, highlighting common pitfalls in existing research. The source code is opened up to the research community to facilitate future audio research in the clinical domain. [45]

DrumClassifier CNN-LSTM

FMA

  • https://github.com/mdeff/fma - We introduce the Free Music Archive (FMA), an open and easily accessible dataset suitable for evaluating several tasks in MIR, a field concerned with browsing, searching, and organizing large music collections. The community's growing interest in feature and end-to-end learning is however restrained by the limited availability of large audio datasets. The FMA aims to overcome this hurdle by providing 917 GiB and 343 days of Creative Commons-licensed audio from 106,574 tracks from 16,341 artists and 14,854 albums, arranged in a hierarchical taxonomy of 161 genres. It provides full-length and high-quality audio, pre-computed features, together with track- and user-level metadata, tags, and free-form text such as biographies. We here describe the dataset and how it was created, propose a train/validation/test split and three subsets, discuss some suitable MIR tasks, and evaluate some baselines for genre recognition. Code, data, and usage examples are available at mdeff/fma.

Wavebeat

Buzz

AudioCLIP

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.




  • https://github.com/hugofloresgarcia/torchaudacity - This package contains utilities for prepping PyTorch audio models for use in Audacity. More specifically, it provides abstract classes for you to wrap your waveform-to-waveform and waveform-to-labels models (see the Deep Learning for Audacity website to learn more about deep learning models for audacity).

Tenacity

AudioMass


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

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.

Eisenkraut

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.

Jokosher

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

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.

AudioAlign

  • https://github.com/protyposis/AudioAlign - a tool written for research purposes to automatically synchronize audio and video recordings that have either been recorded in parallel at the same event or contain the same aural information. AudioAlign is basically a GUI for the Aurio library with a little bit of glue code in between.

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

WaveShop

  • WaveShop - a free, open-source audio editor for Windows XP/Vista/7/8 32-bit and 64-bit. WaveShop is fast, lightweight, and bit-perfect, meaning samples aren't altered unless they need to be. Editing a portion of an audio file only affects that portion; the rest of the file is untouched. Blocks of audio can be cut and pasted without changing their contents at all. This is especially useful for patching a finished master without corrupting its dither. Waveshop's features include peak, RMS and spectral analysis, normalizing, fading, sample rate conversion, audio generation, plug-ins, and more, all with unlimited undo and comprehensive help.

Source separation

ISSE


Spleeter



  • https://github.com/james34602/SpleeterRT - Real time monaural source separation base on fully convolutional neural network operates on time-frequency domainAI Source separator written in C running a U-Net model trained by Deezer, separate your audio input to Drum, Bass, Accompaniment and Vocal/Speech with Spleeter model.


Deep-Audio-Prior

sudo_rm_rf

  • https://github.com/etzinis/sudo_rm_rf - Code for SuDoRm-Rf networks for efficient audio source separation. SuDoRm-Rf stands for SUccessive DOwnsampling and Resampling of Multi-Resolution Features which enables a more efficient way of separating sources from mixtures.

python_source_separation

  • https://github.com/masahitotogami/python_source_separation - 本リポジトリでは、インプレス社機械学習実践シリーズの「Pythonで学ぶ音源分離」のサンプルコードを管理しています。 なお、本ソースコードは、MITライセンスのもとで公開されています。LICENSE.txtを見てください。

ssspy

Adaptive and Focus Layer

MS5000

  • https://github.com/felixCheungcheung/mixing_secrets_v2 - Hierarchical Music Source Separation Using Mixing Secret Multi-track Dataset. an accompanying repository of my my master thesis and a submission to Late Breaking Demo of International Society of Music Information Retrieval 2022: MS500: A MULTI-TRACK DATASET FOR HIERARCHICAL MUSIC SOURCE SEPARATION

Deep Learning For Monaural Source Separation

  • Deep Learning for Monaural Source Separation - Monaural source separation is important for many real world applications. It is challenging in that, given only single channel information is available, there is an infinite number of solutions without proper constraints. In this paper, we explore joint optimization of masking functions and deep recurrent neural networks for monaural source separation tasks, including the monaural speech separation task, monaural singing voice separation task, and speech denoising task. The joint optimization of the deep recurrent neural networks with an extra masking layer enforces a reconstruction constraint. Moreover, we explore a discriminative training criterion for the neural networks to further enhance the separation performance. We evaluate our proposed system on TSP, MIR-1K, and TIMIT dataset for speech separation, singing voice separation, and speech denoising tasks, respectively.

separateLeadStereo

Asteroid

  • Asteroid - a Pytorch-based audio source separation toolkit that enables fast experimentation on common datasets. It comes with a source code that supports a large range of datasets and architectures, and a set of recipes to reproduce some important papers.


SigSep / Music Source Separation

  • SigSep - a deep neural network reference implementation for music source separation, applicable for researchers, audio engineers and artists. Open-Unmix provides ready-to-use models that allow users to separate pop music into four stems: vocals, drums, bass and the remaining other instruments.
    • https://github.com/sigsep/open-unmix-pytorch - This repository contains the PyTorch (1.8+, implementation of Open-Unmix, a deep neural network reference implementation for music source separation, applicable for researchers, audio engineers and artists. Open-Unmix provides ready-to-use models that allow users to separate pop music into four stems: vocals, drums, bass and the remaining other instruments. The models were pre-trained on the freely available MUSDB18 dataset. See details at apply pre-trained model.

Music Separation Enhancement With Generative Modeling

  • https://github.com/interactiveaudiolab/MSG - the official implementation of the Make it Sound Good (MSG) model from our 2022 ISMIR paper "Music Separation Enhancement with Generative Modeling". We introduce Make it Sound Good (MSG), a post-processor that enhances the output quality of source separation systems like Demucs, Wavenet, Spleeter, and OpenUnmix

Vocal separation

Voiceolation

  • Voiceolation - a music source separator that extracts vocals from songs. It is coded on Python and uses image segmentation methods via artificial intelligence, used a U-Net model implemented by Keras and Tensorflow.

vocal-remover

vocal-music-separation

  • https://github.com/zingmars/vocal-music-separation - Software that performs the separation of vocals from music using neural networks (part of my Bachelor's thesis). This CNN attempts to separate the vocals from the music. It does so by training on the amplitude data of the audio file and tries to estimate where the voiced parts are. Vocal separation is done by generating a binary mask of the time-frequency bins that the network thinks contain the vocals and applying it to the original file.

blind-audio-source-separation-cnn

SnnAsp

  • https://github.com/NeuroSumbaD/SnnAsp - This project explores applications of spiking neural networks for blind source audio separation. Using ARTRS, an eight-channel, multiple-talker dataset has been synthesized to simulate input from an eight-microphone linear array.


voicefilter


  • VoiceFilter: Targeted Voice Separation by Speaker-Conditioned Spectrogram Masking | Papers With Code - In this paper, we present a novel system that separates the voice of a target speaker from multi-speaker signals, by making use of a reference signal from the target speaker. We achieve this by training two separate neural networks: (1) A speaker recognition network that produces speaker-discriminative embeddings; (2) A spectrogram masking network that takes both noisy spectrogram and speaker embedding as input, and produces a mask. Our system significantly reduces the speech recognition WER on multi-speaker signals, with minimal WER degradation on single-speaker signals.


  • 2009.04323 VoiceFilter-Lite: Streaming Targeted Voice Separation for On-Device Speech Recognition - We introduce VoiceFilter-Lite, a single-channel source separation model that runs on the device to preserve only the speech signals from a target user, as part of a streaming speech recognition system. Delivering such a model presents numerous challenges: It should improve the performance when the input signal consists of overlapped speech, and must not hurt the speech recognition performance under all other acoustic conditions. Besides, this model must be tiny, fast, and perform inference in a streaming fashion, in order to have minimal impact on CPU, memory, battery and latency. We propose novel techniques to meet these multi-faceted requirements, including using a new asymmetric loss, and adopting adaptive runtime suppression strength. We also show that such a model can be quantized as a 8-bit integer model and run in realtime.
  • 1810.04826 VoiceFilter: Targeted Voice Separation by Speaker-Conditioned Spectrogram Masking - In this paper, we present a novel system that separates the voice of a target speaker from multi-speaker signals, by making use of a reference signal from the target speaker. We achieve this by training two separate neural networks: (1) A speaker recognition network that produces speaker-discriminative embeddings; (2) A spectrogram masking network that takes both noisy spectrogram and speaker embedding as input, and produces a mask. Our system significantly reduces the speech recognition WER on multi-speaker signals, with minimal WER degradation on single-speaker signals.

DNN-based source separation

XSpeech

Vocal and music seperation using a CNN

TasNet / Conv-TasNet

  • https://github.com/kaituoxu/TasNet - A PyTorch implementation of "TasNet: Time-domain Audio Separation Network for Real-time, single-channel speech separation", published in ICASSP2018, by Yi Luo and Nima Mesgarani.

LSTM/BLSTM based PIT for Two Speakers

Ultimate Vocal Remover GUI

  • https://github.com/Anjok07/ultimatevocalremovergui - uses state-of-the-art source separation models to remove vocals from audio files. UVR's core developers trained all of the models provided in this package (except for the Demucs v3 and v4 4-stem models). These bundles contain the UVR interface, Python, PyTorch, and other dependencies needed to run the application effectively. No prerequisites are required.

free-music-demixer

Video separation

Move2Hear

  • Move2Hear Active Audio-Visual Source Separation. We introduce the active audio-visual source separation problem, where an agent must move intelligently in order to better isolate the sounds coming from an object of interest in its environment. The agent hears multiple audio sources simultaneously (e.g., a person speaking down the hall in a noisy household) and it must use its eyes and ears to automatically separate out the sounds originating from a target object within a limited time budget. Towards this goal, we introduce a reinforcement learning approach that trains movement policies controlling the agent's camera and microphone placement over time, guided by the improvement in predicted audio separation quality. We demonstrate our approach in scenarios motivated by both augmented reality (system is already co-located with the target object) and mobile robotics (agent begins arbitrarily far from the target object). Using state-of-the-art realistic audio-visual simulations in 3D environments, we demonstrate our model's ability to find minimal movement sequences with maximal payoff for audio source separation.
    • https://github.com/SAGNIKMJR/move2hear-active-AV-separation - Active Audio-Visual Source SeparationThis repository contains the PyTorch implementation of our ICCV-21 paper and the associated datasets:Move2Hear: Active Audio-Visual Source SeparationSagnik Majumder, Ziad Al-Halah, Kristen GraumanThe University of Texas at Austin, Facebook AI Research

VoiceMe

  • https://github.com/polvanrijn/VoiceMe - Novel text-to-speech systems can generate entirely new voices that were not seen during training. However, it remains a difficult task to efficiently create personalized voices from a high dimensional speaker space. In this work, we use speaker embeddings from a state-of-the-art speaker verification model (SpeakerNet) trained on thousands of speakers to condition a TTS model. We employ a human sampling paradigm to explore this speaker latent space. We show that users can create voices that fit well to photos of faces, art portraits, and cartoons. We recruit online participants to collectively manipulate the voice of a speaking face. We show that (1) a separate group of human raters confirms that the created voices match the faces, (2) speaker gender apparent from the face is well-recovered in the voice, and (3) people are consistently moving towards the real voice prototype for the given face. Our results demonstrate that this technology can be applied in a wide number of applications including character voice development in audiobooks and games, personalized speech assistants, and individual voices for people with speech impairment.

Diarisation

  • WP: Speaker_diarisation - the process of partitioning an input audio stream into homogeneous segments according to the speaker identity. It can enhance the readability of an automatic speech transcription by structuring the audio stream into speaker turns and, when used together with speaker recognition systems, by providing the speaker’s true identity. It is used to answer the question "who spoke when?" Speaker diarisation is a combination of speaker segmentation and speaker clustering. The first aims at finding speaker change points in an audio stream. The second aims at grouping together speech segments on the basis of speaker characteristics.



Processing tools

See also Effects


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

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


  • 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

Uos

  • http://wiki.lazarus.freepascal.org/uos - a multi-platform package of audio handling routines that unifies the best open-source audio libraries. play .mp3, .ogg, .wav, .flac, .m4a, .opus and cdrom audio files. 16, 32 or float 32 bit resolution. record all types of input into file, in 16 or 32 bit resolution, mono or stereo. add DSP effects and filters, however many you want and record it. play multiple inputs and outputs simultaneously. internet audio streaming of mp3 and opus files. produce sound by the build-in synthesizer. Uos can use the SoundTouch, PortAudio, SndFile, Mpg123, Faad, OpusFile and Mp4ff audio libraries. Included in the package: Examples and binary libraries for Linux 32/64, arm-Raspberry Pi, Windows 32/64, Mac OSX 32 and FreeBSD 32/64.

Signet

jackdiff

python-mix


Composers Desktop Project

  • CDP Home Page - The CDP software, first released in 1987, now contains hundreds of ways to transform digitally sampled sound. Its software belongs to the musique concrète category, as realised on computer. Processing is off-line. Although the processing is often faster than real-time, several processes could not run in real-time for technical reasons.The CDP software can be run via one of the two available GUIs or via command line / batch file.Based in the UK, CDP is an international network of composers and programmers guided by a vision of amazing sonic possibilities and how they can be woven into the fabric of music. We have been working together since 1986.


  • CDP-Soundfiles - The CDP system is one of the most comprehensive and innovative sound design suites available. Written largely by English electro-acoustic composer Trevor Wishart and reflecting his musical aesthetics in many ways, its processes cover almost every aspect of sound manipulation you've ever heard of, plus many that will be unfamiliar, and usually from an original or compositional viewpoint.CDP has over 430 processes covering EDIT-MIX functions, SOUNDFILE processes (time domain), SPECTRAL and PITCH processes, a small but significant SYNTH group, DATA GENERATING functions and a large INFO section. In addition there are over 100 DATA massaging functions and an extensive HELP.


  • Soundshaper - a free control interface for the CDP sound transformation software, with an emphasis on speed and ease of use. CDP is a suite of over 430 command-line processes for creating, altering and manipulating sounds to make music. Soundshaper (PC only) fully supports the latest CDP Release 7.Soundshaper provides quick and easy access to CDP processes and parameters and assembles scripts which run CDP in the background. Soundshaper saves CDP output to temporary files, which you can save at any stage. Parameter values can be adjusted at any point, even after further processes have been run. Soundshaper's auto-conversion makes it possible to move seamlessly from one process to another while the program handles the different CDP file types.When run, processes are displayed in a table called the Patch Grid. Soundshaper patches are an easy way to store and recall whole sequences of CDP processes in a fully editable form. All values are retained and the patch can be re-run with any source. Soundshaper patches support up to 16 separate process chains, which can come from different sources. Soundshaper also supports bulk processing, presets and multiple parameter sets.


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




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 LISP environment for 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.

Wav2Spectrum

  • https://github.com/paulnasca/wav2spectrum - a simple application which takes a small chunk (window) from input wav and outputs the frequencies one by one (a sweep) into another wav file. It is very useful to hear the harmonics (one by one) from a sound. It can be used as a spectrum tool for the blind people who are interested in sound analysis.

wave-tools

swingify

Melodyne

$

Denoise

Gnome Wave Cleaner

Postfish

audio-declipper

Neural network





  • RAVE: A variational autoencoder for fast and high-quality neural audio synthesis - Deep generative models applied to audio have improved by a large margin the state-of-the-art in many speech and music related tasks. However, as raw waveform modelling remains an inherently difficult task, audio generative models are either computationally intensive, rely on low sampling rates, are complicated to control or restrict the nature of possible signals. Among those models, Variational AutoEncoders (VAE) give control over the generation by exposing latent variables, although they usually suffer from low synthesis quality. In this paper, we introduce a Realtime Audio Variational autoEncoder (RAVE) allowing both fast and high-quality audio waveform synthesis. We introduce a novel two-stage training procedure, namely representation learning and adversarial fine-tuning. We show that using a post-training analysis of the latent space allows a direct control between the reconstruction fidelity and the representation compactness. By leveraging a multi-band decomposition of the raw waveform, we show that our model is the first able to generate 48kHz audio signals, while simultaneously running 20 times faster than real-time on a standard laptop CPU. We evaluate synthesis quality using both quantitative and qualitative subjective experiments and show the superiority of our approach compared to existing models. Finally, we present applications of our model for timbre transfer and signal compression. All of our source code and audio examples are publicly available.


  • Efficient neural networks for real-time analog audio effect modeling - Deep learning approaches have demonstrated success in the task of modeling analog audio effects such as distortion and overdrive. Nevertheless, challenges remain in modeling more complex effects along with their variable parameters, such as dynamic range compressors. Previous methods not only exhibit a high level of noise and artifacts, they also require large training datasets, are computationally complex, and noncausal, prohibiting real-time operation. In this work, we demonstrate that more efficient temporal convolution networks (TCNs), shallow networks that exploit very large dilation factors to attain significant receptive field, can achieve state-of-the-art performance. We demonstrate that not only do these models produce results perceptually indistinguishable from the original effect, but unlike previous methods, are also capable of running in real-time on GPU and CPU, and can be trained using only 1% of the training data (~10 min) from previous methods.



  • https://github.com/lucidrains/denoising-diffusion-pytorch - Implementation of Denoising Diffusion Probabilistic Model in Pytorch. It is a new approach to generative modeling that may have the potential to rival GANs. It uses denoising score matching to estimate the gradient of the data distribution, followed by Langevin sampling to sample from the true distribution.

Audio and MIDI looping

See also Sampling#Audio looping and MIDI#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.

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


Foco

  • https://github.com/akashnimare/foco - a cross-platform desktop app which runs in menubar. Foco boosts your productivity by creating perfect productive environment. It has the best sounds for getting work done .

Blanket

jungle

  • jungle - an audio-system. It allows you to create an ambiance using random audio-samples. It works with systems that have one or more audio-devices (with one or more channels) and can also use multiple systems (e.g. a couple of raspberry pis) in a cluster.This software requires a Linux system. It uses the ALSA sub system.I run it with a server-pc and 3 raspberry pies.


Web


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

Sonification

See also Synthesis#Graphics synthesis

  • WP: Sonification - the use of non-speech audio to convey information or perceptualize data. Auditory perception has advantages in temporal, spatial, amplitude, and frequency resolution that open possibilities as an alternative or complement to visualization techniques. For example, the rate of clicking of a Geiger counter conveys the level of radiation in the immediate vicinity of the device.




  • CodeSounding - CodeSounding is an open source sonification framework which makes possible to hear how any existing Java program "sounds like", by assigning instruments and pitches to code statements (if, for, etc) and playing them as they are executed at runtime. In this way the flowing of execution is played as a flow of music and its rhythm changes depending on user interaction.



  • HyperMammut - transform sounds to images and vice-versa using single BIG Fourier Transforms (or DCT/DST,etc.).




Retargeting

  • Scalable Music: Automatic Music Retargeting and Synthesis - S. Wenner, J.C. Bazin, A. Sorkine-Hornung, C. Kim, M. Gross. In this paper we propose a method for dynamic rescaling of music, inspired by recent works on image retargeting, video reshuffling and character animation in the computer graphics community. Given the desired target length of a piece of music and optional additional constraints such as position and importance of certain parts, we build on concepts from seam carving, video textures and motion graphs and extend them to allow for a global optimization of jumps in an audio signal. Based on an automatic feature extraction and spectral clustering for segmentation, we employ length-constrained least-costly path search via dynamic programming to synthesize a novel piece of music that best fulfills all desired constraints, with imperceptible transitions between reshuffled parts. We show various applications of music retargeting such as part removal, decreasing or increasing music duration, and in particular consistent joint video and audio editing.


  • https://github.com/ucbvislab/radiotool - a python library that aims to make it easy to create audio by piecing together bits of other audio files. This library was originally written to enable my research in audio editing user interfaces, but perhaps someone else might find it useful.

Web

See also Web Audio, Drumming#Web


  • Clyp - Upload high-quality audio, collaborate or get feedback, and easily share anywhere.




Background

  • myNoise - Focus at Work • Relax at Home • Sleep at Night
  • Rainy Cafe - Ambient White Noise Generator. 雨のカフェ
  • Time for Zen - The best meditation, nature music collection on the web.
  • raining.fm - Relaxing rain audio for work, play and sleep

Tuning

Dart-Mic

  • Dart-Mic - a Javascript library which listens to microphone input and performs pitch/note detection, volume detection, recording, and general purpose data processing. It makes use of the Web Audio APi (which is only supported by Chrome currently) and DSP.js.

AudioNotch

  • AudioNotch - Tinnitus Treatment Sound Therapy - Tuner and Tone Generator


x42-tuner

StompTuner

  • https://github.com/brummer10/StompTuner - a Strobe Tuner in Stomp Box Format. The Strobe provide 2 indicators. The outer ring have a accuracy of 1.0 Cent, the inner ring have a accuracy at 0.1 Cent. The working frequency range is from 24 - 998 Hz. The reference Pitch could be selected between 432 - 452 Hz.

XTuner

tunescope

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

FMIT

  • FMIT - Free Music Instrument Tuner, is a graphical utility for tuning your musical instruments, with error and volume history and advanced features.

LINGOT

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

jackstrobe


gtkguitune

  • https://github.com/bobek/gtkguitune - a program for tuning guitars (and other instruments,. It is actually an oscilloscope which counts the passes between two trigger levels per time, calculates the frequency and shows the tone on a tone-scale.


Guitar Tuning Database


alt-tuner

  • alt-tuner - a DAW microtonal tuning plug-in that retunes almost every midi keyboard or softsynth. It runs on PCs, macs and Linux/Wine machines. Click here to buy it.


MTuner

  • https://www.meldaproduction.com/MTuner - a simple Windows VST audio frequency analyzer designed mostly for tuning guitars and other instruments. It detects frequency, note and deviation from correct pitch in cents, resolving frequencies in the range 50Hz to 2kHz, which is enough for most instruments and vocals.

tuner

  • https://github.com/logsol/tuner - A simple standalone app for macOS based on JUCE that detects the frequency of an instrument and shows its note based on autocorrelation.

Machine learning

See also ML / AI#Audio, Effects#Machine learning, Generative#Neural net, Synth vox


  • https://github.com/bmcfee/pumpp - practically universal music pre-processorpumpp up the jamsThe goal of this package is to make it easy to convert pairs of (audio, jams) into data that can be easily consumed by statistical algorithms.



  • https://github.com/SoMA-group/ADS - TensorFlow implementation of adversarial drum synth (ADS) from the paper Adversarial Synthesis of Drum Sounds @ The 2020 DAFx Conference.






  • https://github.com/KinWaiCheuk/nnAudio - an audio processing toolbox using PyTorch convolutional neural network as its backend. By doing so, spectrograms can be generated from audio on-the-fly during neural network training and the Fourier kernels (e.g. or CQT kernels) can be trained. Kapre has a similar concept in which they also use 1D convolutional neural network to extract spectrograms based on Keras.Other GPU audio processing tools are torchaudio and tf.signal. But they are not using the neural network approach, and hence the Fourier basis can not be trained. As of PyTorch 1.6.0, torchaudio is still very difficult to install under the Windows environment due to sox. nnAudio is a more compatible audio processing tool across different operating systems since it relies mostly on PyTorch convolutional neural network. The name of nnAudio comes from torch.nn


  • MuseGAN - a project on music generation. In a nutshell, we aim to generate polyphonic music of multiple tracks (instruments). The proposed models are able to generate music either from scratch, or by accompanying a track given a priori by the user.




  • Steerable discovery of neural audio effects - Applications of deep learning for audio effects often focus on modeling analog effects or learning to control effects to emulate a trained audio engineer. However, deep learning approaches also have the potential to expand creativity through neural audio effects that enable new sound transformations. While recent work demonstrated that neural networks with random weights produce compelling audio effects, control of these effects is limited and unintuitive. To address this, we introduce a method for the steerable discovery of neural audio effects. This method enables the design of effects using example recordings provided by the user. We demonstrate how this method produces an effect similar to the target effect, along with interesting inaccuracies, while also providing perceptually relevant controls.






  • AudioLDM: Text-to-Audio Generation with Latent Diffusion Models - Speech ResearchText-to-audio (TTA) system has recently gained attention for its ability to synthesize general audio based on text descriptions. However, previous studies in TTA have limited generation quality with high computational costs. In this study, we propose AudioLDM, a TTA system that is built on a latent space to learn the continuous audio representations from contrastive language-audio pretraining (CLAP) latents. The pretrained CLAP models enable us to train latent diffusion models (LDMs) with audio embedding while providing text embedding as a condition during sampling. By learning the latent representations of audio signals and their compositions without modeling the cross-modal relationship, AudioLDM is advantageous in both generation quality and computational efficiency. Trained on AudioCaps with a single GPU, AudioLDM achieves state-of-the-art TTA performance measured by both objective and subjective metrics (e.g., frechet distance). Moreover, AudioLDM is the first TTA system that enables various text-guided audio manipulations (e.g., style transfer) in a zero-shot fashion. * https://github.com/haoheliu/AudioLDM

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

AR / VR

See also Spatial audio

  • https://github.com/bDunph/ImmersAV - an open source toolkit for immersive audiovisual composition. It was built around a focused approach to composition based on generative audio, raymarching and interactive machine learning techniques.


  • Mixthesia - an exploratory project focused on discovering intuitive interactions in VR that introduce novice musicians to sound mixing tools and concepts. Sound mixing is an arcane craft performed in closed-off rooms for extended periods of time through a complex interface. By prototyping different visualizations and interactions, the project aims to demystify the craft of sound mixing by avoiding the complex traditional interface.

Performance

  • The Box of No Return - a Linux-based musical synthesizer platform, suitable for live musicianship, designed to handle multiple patches with enormous demands, and switch between them with zero delay and zero cutout.  If you sit in your home studio and use single SoundFonts with a laptop and simple GUI, you don't need this.  If you play live, and pile on the tone generators and filters in patch development in order to feel and deliver the unyielding power of the musical harmonic roar, a full implementation of the BNR may suit you well.  There are obviously middle grounds too ☺, and there are articles here to help in general.


Games

  • FRACT - a musical exploration game. You arrive in a forgotten place and explore the unfamiliar landscape to discover the secrets of an abandoned world that was once built on sound. As you start to make sense of this strange new environment, you work to rebuild its machinery by solving puzzles and bring the world back to life by shaping sound and creating music in the game.


DOS

macOS


Other



  • WP: ReWire_(software_protocol) - a software protocol, jointly developed by Propellerhead and Steinberg, allowing remote control and data transfer among digital audio editing and related software. Originally appearing in the ReBirth software synthesizer in 1998, the protocol has since evolved into an industry standard. Currently used in macOS and Microsoft Windows 32-bit or 64-bit audio applications, ReWire enables the simultaneous transfer of up to 256 audio tracks of arbitrary resolution and 4080 channels of MIDI data. This allows, for example, the output from synthesizer software to be fed directly into a linear editor without the use of intermediate files or analog transfers. There are also provisions to remotely trigger actions, such as starting and stopping recording. The protocol is licensed free of charge to companies only, but comes with a "non-disclosure of source code" license that is incompatible with most free-software licenses. The ReWire system consists of "Hosts", "Panels", and "Devices". Hosts are the host applications which typically do the sequencing at one end and the final mixdown at the other end. A Device is a dynamic link library that only generates sound; it has no user interface. A Panel is a graphical interface for setting the parameters of one Device. A typical setup would be to use Ableton Live in "Host" mode, and use Propellerhead Reason as a synthesizer. In this case Reason would provide Device/Panel pairs to Ableton, which could then send midi commands, sync timing and mix Reason's output into its own effects chains. Many applications support either mode. In fact, an application could (at the discretion of a developer) act as both a Host and a Panel at the same time.