Thanks guys, I hasn't been very clear in posing the question, indeed.
Let me better explain what I have in mind.
As you probably know better than me, every parameter of a rack fx (up to 5 at the same time for my Lexicons) can be patched to a control change. Some of these parameters are just an ON/OFF funcion (0-63 and 64-127), some of them use the entyre range of the midi capabilities (0-127) to change in real time some parameters, like panning, modulation shapes, etc...
I've developed in matlab the code of the signals I want to send as CC:
% #1 funzione per Chorus con AM ed FM
fc = 0.29; % Carrier Freq (Hz)
fm = 0.085; % Modulating Signal Freq (Hz)
m = 9; % Modulation Index
t = linspace(0, 10, 2^14); % Number of samples
y = -0.45*sin(2*pi*fc*t*0.96) + 0.45*cos(2*pi*fc*t - (m*sin(2*pi*fm*t))) + 0.1*cos(2*pi*fc*t*2.8);
subplot (3,2,1), plot(t,y);
% #2 funzione per panning
fc = 0.69; % Carrier Freq (Hz)
fm = 0.23; % Modulating Signal Freq (Hz)
m = 9; % Modulation Index
t = linspace(0, 10, 2^14); % Number of samples
y = - 0.5*sin(2*pi*fc*t - (m*cos(2*pi*fm*t*0.618))) + 0.5*cos(2*pi*fc*t*2.8 + (m*sin(2*pi*fm*t*0.618)));
subplot (3,2,2), plot(t,y);
% #3 funzione per psycho-flanger
fc = 0.69; % Carrier Freq (Hz)
fm = 0.23; % Modulating Signal Freq (Hz)
m = 1; % Modulation Index
t = linspace(0, 10, 2^14); % Number of samples
y = - 0.5*sin(2*pi*fc*t - (m*cos(2*pi*fm*t*1.32))) -0.5 + abs(cos(2*pi*fc*t*1.32 + (m*sin(2*pi*fm*t*0.618))));
subplot (3,2,3), plot(t,y);
% #4 funzione per dimensione riverbero
fc = 0.69; % Carrier Freq (Hz)
fm = 0.23; % Modulating Signal Freq (Hz)
m = 19; % Modulation Index
p = 0; %numero del plot
t = linspace(0, 10, 2^14); % Number of samples
y = - 0.6*sin(2*pi*fc*t - (m*cos(2*pi*fm*t*1.32))) + 0.4*cos(2*pi*fc*t*3 - (m*sin(2*pi*fm*t*1.32)));
subplot (3,2,4), plot(t,y);
% #5 funzione per chorus lento
fc = 0.069; % Carrier Freq (Hz)
fm = 0.023; % Modulating Signal Freq (Hz)
m = 19; % Modulation Index
t = linspace(0, 10, 2^14); % Number of samples
y = - abs(sin(2*pi*fc*t - (m*cos(2*pi*fm*t*1.32)))) + abs(cos(2*pi*fc*t*3 - (m*sin(2*pi*fm*t*1.32))));
subplot (3,2,5), plot(t,y);
% #6 funzione per chorus lento
fc = 1.29; % Carrier Freq (Hz)
fm = 0.385; % Modulating Signal Freq (Hz)
m = 18; % Modulation Index
t = linspace(0, 20, 2^14); % Number of samples
y = cos(2*pi*fc*t - (m*sin(2*pi*fm*t*0.26))) ;
subplot (3,2,6), plot(t,y);
and the results are attached.
This is the Matlab code I've developed to see the effect of each parameter in 25 different plots (again attached):
% Plot funzioni con AM ed FM
fc = 1.29; % Carrier Freq (Hz)
fm = 0.385; % Modulating Signal Freq (Hz)
m = 9; % Modulation Index
p = 0; %numero del plot
for fi = 0.1:0.04:1.06;
p = p+1;
t = linspace(0, 20, 2^14); % Number of samples
y = cos(2*pi*fc*t - (m*sin(2*pi*fm*t*fi))) + 0.1*cos(2*pi*fc*t*2.8);
subplot(5,5,p), plot(t,y);
Where the basic code is really simple.
I modulate the frequency of a sine or cosine wave by varying the value of the radiants during the time:
y = cos(2*pi*fc*t - (m*sin(2*pi*fm*t*0.26)))
This can be splitted in:
y = cos(2*pi*fc*t)
That is nothing else than a simple cosine wave of the carrier frequency fc.
Then I modulate the radiants of the funcion, so I change the speed of the radiants, so the frequency.
- (m*sin(2*pi*fm*t*0.26))
It's a frequency modulation of the carrier frequency fc at the modulation frequency fm.
The amount of modulation is set by the parameter m.
This is the very basic one, then you can do whatever you want:
- square waves;
- absolute values of the sinewaves;
- odd roots of the sine waves;
- triangular waves;
- sawtooth waves;
- etc...
For example, do you want to do an AM modulation of a FM modulated sine?
y = cos(2*pi*am*t) * cos(2*pi*fc*t - (m*sin(2*pi*fm*t))) ;
Where:
- am is the amplitude modulating frequency;
- fm is the frequency modulation frequency.
CC plots.pdf (88 KB)
CC signal plots.pdf (67.6 KB)
Test plots.pdf (145 KB)