Texture Granular Synth 3.1
Giorgio Nottoli1, Giovanni Costantini2,3, Michelangelo Nottoli, Andrea Angelini2, Massimiliano Todisco2,4
1 Conservatorio of Rome “S. Cecilia”, Rome, Italy
2 Department of Electronic Engineering, University of Rome “Tor Vergata”, Rome, Italy
3 IDASC Institute of Acoustics and Sensors “Orso Mario Corbino”, Rome, Italy
4 Fondazione “Ugo Bordoni”, Rome, Italy
Texture is an instrument to perform Asyncronous Granular Synthesis based upon the algorithm developed by Giorgio Nottoli [Conservatorio di Santa Cecilia, Roma], and is fully implemented with programming language C++.
It generates a grains’ flow in which the way each grain follows the other depends on probabilistic parameters such as grain density (attack/sec), overlapping, synchronism and fade of each grain.
The spectrum generated by the synthesis could be harmonic, expanded or contracted according to the value of frequency exponent parameter; the result will be a sound texture that can change from noisy fragmented sounds, to metallic and tuneless sounds such as bells, finally to harmonic sounds similar to strings or choirs.
Texture is available both as VST or Audio Unit instrument, and each interface’s parameter is automated and can be controlled by the host; some factory presets are implemented in a combo box on the upper-left side of the interface, but user can save his own sound inside the host if needed.
An advanced and a basic interface are provided for expert users or casual ones; we’re going to see the details in the following chapters.
The main panel is on the upper-middle side of the interface and it contains a master volume, a sustain button to hold the root note, a graph button to hide/show the spectrum that we’re going to generate, and a polyphony button to switch between monophonic and polyphonic mode.
In the polyphonic mode, we have a queue of 64 keys on which the partial harmonics of the spectrum will be distributed; the queue will be cleaned when user stop pressing any midi note.
Frequency deviation knob affects the harmonic distribution of the spectrum around the frequency root (midi note pressed on the piano keyboard); it can change between 0 and 2500 cents of frequency.
The first partial and the number of partials knobs affect respectively the first partial and the number of partials in the generated spectrum and their values can change between 1 and 128.
Finally frequency exponent [or Steve Mc Adams exponent] knob can vary between 0 and 2, and it generates a harmonic spectrum when its value is 1, a contracted spectrum if the value < 1, or an expanded spectrum when the value > 1.
Waveform Panel defines the sound content of the grains.
User can set the number of oscillators used to generate the sound texture, choosing between 32, 63, 128 or 256 active oscillators.
Waveform knob will set the harmonic number of the precomputed waves; it can change between 1 (simple sine wave) and 32 harmonics. The amplitudes of each harmonic decrease on 1/n order, similar to the behavior of a saw wave.
The parameters in this panel will affect the way each grain follow in time the other.
They’re all probabilistic values, which mean each parameter sets the probability that the time event happens.
Density knob affects the number of attacks per second, and its value can change between 1 and 1000.
Overlapping knob sets on each instant the probability that the grain should continue to play, or it should start the release state of his envelope.
Finally the change knob affects the probability that the following grain should change his root frequency, so that in polyphonic mode it sets the rate each voice starts playing his sound.
This panel affects the grain’s envelope.
Inside the panel user can see two joystick controller, the first one controls the attack and decay time of each grain (they can change between 1 and 1000 ms), and the second one sets the sync and fade parameters.
The sync parameter changes the probability that the grain starts playing together with the previous one, and the fade parameter affects the probability that a crossfade occurs between grains.
Then we have four sliders to control the ADSR of the note played; attack, decay and release are rates, and can change between 1/40 of second and 40 seconds, on the other hand sustain is an amplitude, and it can change between 0 and 1.
Then user can control the amplitude exponent, which can change between 0 and 2, to modify the amplitude of the spectrum’s partials; when the value is 0 the results is a plan spectrum (with the same amplitude for each partial), when the value = 1 the amplitudes will be decreasing with the order of 1/n, and when the value >1 the higher partials will fade.
Finally amplitude deviation randomizes the amplitude of each partial.
This panel contains four buttons in order to assign the current sound we’re playing to the basic interface.
Each of the four preset corresponds to one of the four vertex of the pad in the basic interface.
The basic interface gives casual and not expert users a tool to play sound textures generated by granular synthesis.
On the four vertex of the preset pad (the red rectangle) we have pre loaded four factory sounds, and user can move the joystick in every position inside the rectangle to mix the preset and create a unique combination of the four sounds.
User can also assign to each vertex a sound specifically created in the advanced interface, by pressing the four buttons in the assign panel.
On the contrary user can create a sound texture by moving the joystick of the preset pad, then he can switch to the advanced interface to change the detailed parameters of the sound he has just chosen.
Unzip the archive and simply put Texture.component or Texture.vst into
Unzip the archive and simply put Texture.dll in your plugin folder.
Release 3.1 (Polyphonic version)
New functionality: Polyphonic mode implemented
Bug fix : Fixed a problem with the visualization of the preset combo box
Bug fix : Fixed a redraw problem with the ADSR graph
Release 3.0 (Monophonic version)
If you have any question, feedback or suggestion please don’t hesitate to write to firstname.lastname@example.org
- G. Nottoli, A sound texture synthesizer based on algorithmic generation of micro-polyphonies, Proc. of 3nd International Conference “Understanding and creating Music”, Caserta, December 2003, 11-15.
- G. Saggio, F. Giannini, M. Todisco, G. Costantini, A Data Glove Based Sensor Interface to Expressively Control Musical Processes, Proc. of 4nd IEEE International Workshop on Advances in Sensors and Interfaces , 28-29 June 2011, Savelletri di Fasano, Brindisi.
- G. Costantini, G. Saggio, M. Todisco, A Glove Based Adaptive Sensor Interface for Live Musical Performances, 1st SENSORDEVICES International Conference on Sensor Device Technologies and Applications, Venice, Italy, July 18-25, 2010.
- G. Costantini, M. Todisco, G. Saggio, A Cybernetic Glove to Control a Real Time Granular Sound Synthesis Process, IMCIC International Multi-Conference on Complexity, Informatics and Cybernetics, Orlando, Florida, USA, April 6-9, 2010.
- G. Costantini, M. Todisco, G. Saggio, A Wireless Glove to Perform Music in Real Time, 8th WSEAS International Conference on APPLIED ELECTROMAGNETICS, WIRELESS and OPTICAL COMMUNICATIONS, Penang, Malaysia, March 23-25, 2010.
- G. Costantini, M. Todisco, M. Carota, D. Casali, A New Physical Sensor Based on Neural Network for Musical Expressivity, Proceedings of the 13th AISEM Italian Conference Sensors and Microsystems, Rome, Italy, February 19-21, 2008, pp. 281-288.
- G. Costantini, M. Todisco, M. Carota, A Neural Network Based Interface to Real Time Control Musical Synthesis Processes, Proceedings of the 11th WSEAS International Conference on CIRCUITS, Agios Nikolaos, Crete Island, Greece, July 23-25, 2007, pp.41-45.
- G. Costantini, M. Todisco, M. Carota, G. Maccioni, D. Giansanti, A New Adaptive Sensor Interface for Composing and Performing Music in Real Time, Proc. of 2nd IEEE International Workshop on Advances in Sensors and Interfaces , 26-27 June 2007, Bari, Italy, pp.106-110.