kr vibrato kAvgAmp, kAvgFreq, kRandAmp, kRandFreq, kAmpMinRate, kAmpMaxRate, kfreqMinRate, kfreqMaxRate, ifn [, iphs] kr vibr kAvgAmp, kAvgFreq, ifn kr jitter kamp, kfreqMin, kfreqMax kr jitter2 ktotamp, kamp1, kfreq1, kamp2, kfreq2, kamp3, kfreq3
These opcode are designed to make sounds more natural sounding and "life-like." vibrato and vibr generate a vibrato-like signal containing some user-controlled randomness in amplitude and frequency. jitter and jitter2 produce deviation in the output signal to make them more "analog-like" and natural sounding.
ifn – function table containing the vibrato waveform. ifn normally contains a sine or a triangle wave.
iphs (optional) – initial phase of table, expressed as a fraction of a cycle, in the range 0 to 1. A negative value will cause initialization to be skipped. The default value is 0.
kAvgAmp – average amplitude value of the vibrato signal
kAvgFreq – average frequency value of the vibrato signal, in Hz
kRandAmp – amount of random amplitude deviation
kRandFreq – amount of random frequency deviation
kAmpMinRate – minimum frequency of random amplitude deviation segments, in Hz
kAmpMaxRate – maximum frequency of random amplitude deviation segments, in Hz
kfreqMinRate – minimum frequency of random frequency deviation segments, in Hz
kfreqMaxRate – maximum frequency of random frequency deviation segments, in Hz
kamp – amplitude of jitter deviation
kfreqMin – minimum frequency of random frequency variations, in Hz
kfreqMax – maximum frequency of random frequency variations, in Hz
ktotamp – resulting amplitude of jitter2
kamp1 – amplitude of the first jitter component
kfreq1 – frequency of random variation of the first jitter component, in Hz
kamp2 – amplitude of the second jitter component
kfreq2 – frequency of random variation of the second jitter component, in Hz
kamp3 – amplitude of the third jitter component
kfreq3 – frequency of random variation of the third jitter component, in Hz
vibrato outputs a natural-sounding, user-controllable vibrato. Both the frequency and the amplitude of the oscillator generating the vibrato are randomly varied, to simulate the irregularities of a real vibrato. In order to have a total control of these random variations, several input arguments are required. The random variations are obtained by two segmented lines. The first controls the amplitude deviations and the second controls the frequency deviations. The average duration of each segment of each line can be modified by the arguments kAmpMinRate, kAmpMaxRate, kfreqMinRate, kfreqMaxRate. The deviation from the average amplitude and frequency values can be independently adjusted by means of kRandAmp and kRandFreq.
vibr is an easier-to-use version of vibrato, with fewer arguments. vibr uses the same methods as vibrato to generate randomness, but several of vibrato's parameters are hard-coded to default values.
jitter generates a segmented line. The segments are randomly generated inside the +kamp and -kamp interval. Duration of each segment is a random value generated according within the values of kfreqmin and kfreqmax.
jitter2 generates a segmented line such as jitter, but the result is similar to the sum of three randi statements, where each randi has a different amplitude and frequency value (see randi for more details). These values can be varied at k-rate. Different effects can be obtained by varying the input arguments. For best results, It is suggested to keep their amplitude moderate.
New in Csound 4.15