All Projects → dariosanfilippo → concatenative_granulation

dariosanfilippo / concatenative_granulation

Licence: MIT license
Live concatenative granular processing for click-free looping, complex wavetable oscillation, and non-overlapping granulation with rectangular windowing.

Programming Languages

Faust
14 projects

Projects that are alternatives of or similar to concatenative granulation

airfx
Over 150 Airwindows plugins as Max/MSP externals using the Min C++ API. Contains reverbs, delays, filters, compressors, and more.
Stars: ✭ 14 (-60%)
Mutual labels:  dsp, computer-music
glicol
(Audio) graph-oriented live coding language and music DSP library written in Rust
Stars: ✭ 853 (+2337.14%)
Mutual labels:  dsp, computer-music
Nwaves
.NET library for 1D signal processing focused specifically on audio processing
Stars: ✭ 151 (+331.43%)
Mutual labels:  dsp
Mimium
mimium (MInimal Musical medIUM) a programming language as an infrastructure for sound and music.
Stars: ✭ 212 (+505.71%)
Mutual labels:  dsp
Julius
Fast PyTorch based DSP for audio and 1D signals
Stars: ✭ 179 (+411.43%)
Mutual labels:  dsp
Resampy
Efficient sample rate conversion in python
Stars: ✭ 155 (+342.86%)
Mutual labels:  dsp
Sof
Sound Open Firmware
Stars: ✭ 183 (+422.86%)
Mutual labels:  dsp
Wavesdr
macOS native desktop Software Defined Radio app
Stars: ✭ 144 (+311.43%)
Mutual labels:  dsp
Gnuradio
GNU Radio – the Free and Open Software Radio Ecosystem
Stars: ✭ 3,297 (+9320%)
Mutual labels:  dsp
Shaden
🎧 A modular audio synthesizer.
Stars: ✭ 175 (+400%)
Mutual labels:  dsp
Moogladders
🔉 Collected C++ implementations of the classic 4-pole moog ladder filter
Stars: ✭ 211 (+502.86%)
Mutual labels:  dsp
Audionetwork
Data transmission over sound waves written in JavaScript without any dependencies. All you need is just microphone, speakers and the browser!
Stars: ✭ 173 (+394.29%)
Mutual labels:  dsp
Guitarstack
Digital guitar effects right in your browser!
Stars: ✭ 164 (+368.57%)
Mutual labels:  dsp
Red Pitaya Notes
Notes on the Red Pitaya Open Source Instrument
Stars: ✭ 205 (+485.71%)
Mutual labels:  dsp
Pyaudiodsptools
Numpy Audio DSP Tools
Stars: ✭ 154 (+340%)
Mutual labels:  dsp
Renderman
Command line C++ and Python VSTi Host library with MFCC, FFT, RMS and audio extraction and .wav writing.
Stars: ✭ 225 (+542.86%)
Mutual labels:  dsp
Essentia
C++ library for audio and music analysis, description and synthesis, including Python bindings
Stars: ✭ 1,985 (+5571.43%)
Mutual labels:  dsp
Supriya
A Python API for SuperCollider
Stars: ✭ 167 (+377.14%)
Mutual labels:  dsp
Si4735
SI4735 Library for Arduino
Stars: ✭ 182 (+420%)
Mutual labels:  dsp
voder
An emulation of the Voder Speech Synthesizer.
Stars: ✭ 19 (-45.71%)
Mutual labels:  dsp

Link to the DAFx paper

https://dafx2020.mdw.ac.at/proceedings/papers/DAFx20in21_paper_38.pdf.

Live concatenative granular processing

This algorithm addresses signal discontinuity and concatenation artefacts in real-time granular processing with rectangular windowing. By combining zero-crossing synchronicity, first-order derivative analysis, and Lagrange polynomials, we can generate streams of uncorrelated and non-overlapping sonic fragments with minimal low-order derivatives discontinuities. The resulting open-source algorithm, implemented in the Faust language, provides a versatile real-time software for dynamical looping, wavetable oscillation, and granulation with reduced artefacts due to rectangular windowing and no artefacts from overlap-add-to-one techniques commonly deployed in granular processing.

Parameters

Interpolation length: length of the reconstructed segment at the junction through 5th-order Lagrange. Short lenghts may work best for high-frequency signals and vice versa.

Grain length: determines the approximate length of each grain in seconds, consequently setting the grain rate (1 / grain_length). Note that the grain length is approximate as the triggering of each grain is dependent on the zero-crossing occurrences in the output of the system.

Buffer position: offset to move the granulators reading head along the buffer, where 0 is the left-most area, and 1 is the right-most area. Positions 0 and 1 are equivalent as the buffer is circular. This parameter is particularly useful when using the granulator with a zero-factor time transposition, that is, as a wavetable oscillator to explore different waveforms.

Time transposition: time transposition factor; negative factors correspond to reversed buffer indexing.

Time async degree: degree of asynchronicity in the recursive chaotic factors variations.

Time async depth: depth of the oscillations in the recursive chaotic factors variations.

Pitch transposition: pitch transposition factor; negative factors correspond to reversed grain playback.

Pitch async degree: degree of asynchronicity in the recursive chaotic factors variations.

Pitch async depth: depth of the oscillations in the recursive chaotic factors variations.

Freeze buffer: check this box to prevent the buffer from being updated with new input signals.

Volume: linear scaling factor.

Compilation

Please compile using double-precision.

Optimality

For best results, run the software at high sample rates, i.e., 192 kHz.

Acknowledgements

I want to thank Julian Parker for his valuable help in improving this algorithm.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].