|
|
|
11-11-2019, 02:12 PM
|
#1
|
Human being with feelings
Join Date: Jun 2019
Posts: 3
|
Vocal Doubling - multple voices
Hi I created a vocal recording and I want to duplicate it so it sounds like two people singing. Right now f I duplicate it and put it on a new track it just sounds louder, not like two voices. Help! Thanks!!
|
|
|
11-11-2019, 03:06 PM
|
#2
|
Human being with feelings
Join Date: Jul 2010
Location: Silicon Valley, CA
Posts: 2,779
|
If you can actually get the singer back you can look for an "automatic double tracking" (ADT) effect or a chorus effect. ADT varies the time and phase to get a more realistic effect but it's still an "effect" and it's not the same as true double-tracking.
Quote:
Right now f I duplicate it and put it on a new track it just sounds louder, not like two voices.
|
Right! mixing is done by summation and you are simply doubling the amplitude of each sample.
If you invert a copy an mix, you'll be subtracting (adding a negative) and you'll get dead silence.
If you actually double-track have the singer sing twice and record twice, that won't happen, and if you invert they will mix normally without "subtracting".
|
|
|
11-11-2019, 03:40 PM
|
#3
|
Human being with feelings
Join Date: Aug 2007
Location: Near Cambridge UK and Near Questembert, France
Posts: 22,754
|
Track the vocal again on another track. You will still sound like you twice, but as DVDoug says, you can tweak that using delay, phasing, even different pan & reverb settings.
__________________
Ici on parles Franglais
|
|
|
11-11-2019, 03:51 PM
|
#4
|
Human being with feelings
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,687
|
I just did a tool for exactly this, which might or might not be helpful for you.
I crafted a JSFX that provides a "humanizedly fluctuating" Midi CC (14 Bit).
I installed this thingy three times and one controls a ReaPitch for intonation fluctuation, one controls a ReaDelay for timing fluctuation, and the third controls a "8*Stereo to Stereo Mixer" for volume fluctuation.
If you are interested in it, I'll upload the "Midi CC fluctuation" JSFX to ReaPack.
Here is the FX Chain:
Code:
REQUIRED_CHANNELS 4
BYPASS 0 0
<JS "test/midi CC fluctuation" ""
0.000000 16.000000 0.500000 0.000000 1.000000 0.100000 0.900000 0.100000 0.010000 0.001000 0.001000 0.000300 0.800000 0.000000 - - - - - 0.189382 -0.299967 -0.251032 0.148370 0.118696 9164.000000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>
JS_DIMS 1513 940
WAK 0
BYPASS 0 0
<JS "test/midi CC fluctuation" ""
0.000000 17.000000 0.500000 0.000000 1.000000 0.100000 0.900000 0.323000 0.100000 0.001000 0.100000 0.000020 2.100000 0.000000 - - - - - 0.049014 0.514754 0.468180 0.003488 0.007326 8252.000000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>
JS_DIMS 1434 939
WAK 0
BYPASS 0 0
<JS "test/midi CC fluctuation" ""
0.000000 18.000000 0.500000 0.000000 1.000000 0.100000 0.900000 0.316000 0.010000 0.001000 0.001000 0.001000 0.300000 0.000000 - - - - - 0.852157 0.456977 0.496495 0.214451 0.064335 8719.000000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>
JS_DIMS 1034 939
WAK 0
BYPASS 1 0
<VST "VST: ReaControlMIDI (Cockos)" reacontrolmidi.dll 0 "" 1919118692 ""
ZG1jcu5e7f4AAAAAAAAAAPAAAAABAAAAAAAQAA==
/////wAAAAAAAAAAAAAAABIAAAATAAAAAAAAAPggAAA5HgAAQAAAAAAAAAA/AAAAQzpcVXNlcnNcTWljaGFlbCBTY2huZWxsXEFwcERhdGFcUm9hbWluZ1xSRUFQRVJc
RGF0YVxHTS5yZWFiYW5rAAAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAATWFqb3IADQAAADEw
MjAzNDA1MDYwNwABAAAAAAAAAAABAAAAEwAAABQAAAAAAAAAAAAAAAAAAAAAAAAA
AAAQAAAA
>
WAK 0
BYPASS 0 0
<JS "ReaTeam JSFX/Utility/mschnell_Dual Time adjustment.jsfx" ""
-80.640000 -80.640000 -3556.000000 -3556.000000 0.000000 22.000000 0.000000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>
JS_DIMS 707 352
<JS_PINMAP
6AMAABwAAADoAwAABAAAAAIAAAABAAAAAAAAAAIAAAAAAAAAHAAAAOgDAAAEAAAAAgAAAAQAAAAAAAAACAAAAAAAAAA=
>
WAK 0
BYPASS 0 0
<VST "VST: ReaPitch (Cockos)" reapitch.dll 0 "" 1919250531 ""
Y3Blcu5e7f4CAAAABAAAAAAAAAAIAAAAAAAAAAIAAAAEAAAAAAAAAAgAAAAAAAAATAAAAAEAAAAAABAA
AAAAAAAAAAABAAAALAAAAAIAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAD88Eg8/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAIA/AAAAPw==
AAAQAAAA
>
<PROGRAMENV 4 0
PARAMBASE 0.5
LFO 0
LFOWT 1 1
AUDIOCTL 0
AUDIOCTLWT 1 1
PLINK 1 -100 -1 -0.5
MIDIPLINK 0 0 176 144
MODWND 0 112 204 460 481
>
WAK 0
BYPASS 0 0
<VST "VST: ReaDelay (Cockos)" readelay.dll 0 "" 1919247468 ""
bGRlcu5e7f4CAAAABAAAAAAAAAAIAAAAAAAAAAIAAAAEAAAAAAAAAAgAAAAAAAAATAAAAAEAAAAAABAA
AAAAAAAAAAABAAAALAAAAAIAAAAAAAAAAACAPwAAAAAAAAAAAACAPyDsCDwAAAAAAAAAAAAAgD8AAAAAAACAPwAAgD8AAIA/AAAAPw==
AAAQAAAA
>
<PROGRAMENV 3 0
PARAMBASE 0
LFO 0
LFOWT 1 1
AUDIOCTL 0
AUDIOCTLWT 1 1
PLINK 0.1 -100 0 -0.42
MIDIPLINK 0 0 176 145
MODWND 0 29 104 377 381
>
WAK 0
BYPASS 0 0
<JS ix/Mixer_8xS-1xS ""
0.000000 -2.300000 -60.000000 -60.000000 -60.000000 -60.000000 -60.000000 -60.000000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>
<PROGRAMENV 1 0
PARAMBASE 0
LFO 0
LFOWT 1 1
AUDIOCTL 0
AUDIOCTLWT 1 1
PLINK 0.33 -100 -1 -0.59
MIDIPLINK 0 0 176 146
>
WAK 0
-Michael
Last edited by mschnell; 11-11-2019 at 11:52 PM.
|
|
|
11-11-2019, 08:30 PM
|
#5
|
Human being with feelings
Join Date: Jul 2011
Location: Brooklyn
Posts: 2,613
|
Michael,
Please do upload it I've been searching for it in the stash and in your reapack but I guess it's not there (?) Would like to try the humanizedly fluctuating intonation and timing
__________________
The reason rain dances work is because they don't stop dancing until it rains.
|
|
|
11-11-2019, 11:46 PM
|
#6
|
Human being with feelings
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,687
|
As pushing it to the repository might take some days and I guess you are able to install it manually, here you are:
Code:
desc:MIDI CC fluctuation
//tags: MIDI processing filter
//author: MSchnell
// these lines tell Reaper the effect has no audio input/output,
// which enables processing optimizations.
// MIDI-only FX should always have these lines.
in_pin:none
out_pin:none
slider1: 0<0,15,1{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}>Midi Channel
slider2: 16<0,127,1{0 Bank Sel M,1 Mod Wheel M,2 Breath M,3,4 Foot P M,5 Porta M,6 Data Entry M,7 Vol M,8 Balance M,9,10 Pan M,11 Expression M,12 Ctrl 1 M,13 Ctrl 2 M,14,15,16 GP Slider 1,17 GP Slider 2,18 GP Slider 3,19 GP Slider 4,20,21,22,23,24,25,26,27,28,29,30,31}>CC
slider3: 0.5<0,1,0.01>Delta wide (^1)
slider4: 0<0,1,0.01>Delta mid (^3)
slider5: 1<0,1,0.01>Delta narrow (^5)
slider6: 0.1<0,0.1,0.01>Hold speed
slider7: 0.9<0,1,0.001>Hold mix
slider8: 0.1<0,1,0.001>Speed (Roughness)
slider9: 0.01<0,1,0.01>Result wide (^1)
slider10: 0.01<0,1,0.01>Result mid (^3)
slider11: 0.01<0,1,0.01>Result narrow (^5)
slider12: 0.0001<0,0.1,0.0001>maximum step
slider13: 1<0,10,0.1>gain
slider14: 0<-1,1,0.1>bias
slider20: 0<-1,1,0.01>Delta
slider21: 0<-1,1,0.01>Hold
slider22: 0<-1,1,0.01>Delta with Hold
slider23: 0<-1,1,0.01>Result raw
slider24: 0<-1,1,0.01>Result -1 ... 1
slider25: 0<0,16383,1>Result Midi (0 ... 16383)
@init
CC_MSG = 0xB0; // 11;
s = 0;
h = 0;
result= 0;
msg31 = -1;
msg32 = -1;
offset = 0;
_p = 0;
_result = 0;
_delta = 2560;
memset(_result, 8192, 2560);
memset(_delta, 0, 2560);
@slider
msg1 = CC_MSG + slider1;
msg21 = slider2;
msg22 = msg21 + 32;
a1 = slider3;
a3 = slider4;
a5 = slider5;
aa = a1 + a3 + a5;
aa > 1 ? (
a1 /= aa;
a3 /= aa;
a5 /= aa;
);
s_h = slider6;
v_h = slider7;
sp = slider8;
sp = exp(sp*log(200)) / 200;
s1 = slider9;
s3 = slider10;
s5 = slider11;
ss = s1 + s3 + s5;
ss > 1 ? (
s1 /= ss;
s3 /= ss;
s5 /= ss;
);
s1 *= sp;
ms = slider12;
gain = slider13;
bias = slider14;
@block
r = rand();
v1 = r*2 - 1;
v2 = v1*v1;
v3 = v1*v2;
v5 = v3*v2;
va = a1*v1 +a3*v3 + a5*v5;
slider20 = va;
/*
va > h + hyst ? (
h = va;
va = -va; // avoid exeeding ly ar jump
) : (
va < h - hyst ? (
h = va;
va = -va; // avoid exeeding ly ar jump
);
);
*/
r = rand();
r < s_h ? (
h = va;
va = -va; // avoid exeeding ly ar jump
);
slider21 = h;
vh = (1-v_h)*va + v_h*h;
slider22 = vh;
_delta[_p] = vh;
s += sp*vh;
s < -1 ? s = -1;
s > 1 ? s = 1;
d1 = s;
d2 = s*s;
d3 = d2*s;
d5 = d3*d2;
s -= d1*s1;
s -= d3*s3;
s -= d5*s5;
result < s-ms ? (
result += ms;
) : result > s + ms ? (
result -= ms;
) : (
result = s;
);
slider23 = result;
result_1 = result * gain + bias;
result_1 < -1 ? result_1 = -1;
result_1 > 1 ? result_1 = 1;
slider24 = result_1;
_m = (result_1 + 1) / 2;
m = (_m * 16384) | 0;
m > 16383 ? m = 16383;
slider25 = m;
m1 = (m / 128) | 0;
m2 = m - 128 * m1;
msg31 != m1 ? (
msg31 = m1;
midisend(offset, msg1, msg21, msg31);
);
msg32 != m2 ? (
msg32 = m2;
midisend(offset, msg1, msg22, msg32);
);
_p >= _w ? _p = 0 : _p += 1;
_result[_p] = m;
@sample
@gfx 640 400
_w = gfx_w;
_w > 2560 ? _w = 2560; // HDMI
gfx_r=gfx_g=gfx_b=0; gfx_a=1;
gfx_x=gfx_y=0;
gfx_rectto(gfx_w, gfx_h);
_a = 0;
_min = 16384;
_max = 0;
_pp = 0;
loop (_w,
_y = _result[_pp];
_a += _y;
_min > _y ? _min = _y;
_max < _y ? _max = _y;
_pp += 1;
);
_a /= _w;
_min = 8192 - _min;
_max = _max - 8192;
_max < _min ? _max = _min;
_fact = gfx_h / _max / 2;
_offs = gfx_h /2;
_offs += 8192*_fact;
_min_d = 1;
_max_d = -1;
_pp = 0;
loop (_w,
_y = _delta[_pp];
// _a += _y;
_min_d > _y ? _min_d = _y;
_max_d > _y ? _max_d = _y;
_pp += 1;
);
// _a /= _w;
_min_d = - _min_d;
_max_d < _min_d ? _max_d = _min_d;
_fact_d = gfx_h / _max_d / 2;
_offs_d = gfx_h /2;
_y = gfx_h / 2;
gfx_x = 0;
gfx_y = _y;
gfx_r=gfx_g=gfx_b=0.5;
gfx_lineto(_w-1, _y);
_y = _offs - _a * _fact;
gfx_x = 0;
gfx_y = _y;
gfx_g = 0;
gfx_r = 1;
gfx_lineto(_w-1, _y);
gfx_b = 0.75; gfx_r=gfx_g=0;
_x = 0;
gfx_x = 0;
_pp = _p-1;
_y = _offs - _delta[_pp] * _fact_d;
gfx_y = _y;
loop (_w-1,
_x += 1;
_pp += 1;
_pp > _w ? _pp = 0;
_y = _offs_d - _delta[_pp] * _fact_d;
gfx_lineto(_x, _y);
);
gfx_b = 0; gfx_r=gfx_g=1;
_x = 0;
gfx_x = 0;
_pp = _p-1;
_y = _offs - _result[_pp] * _fact;
gfx_y = _y;
loop (_w-1,
_x += 1;
_pp += 1;
_pp > _w ? _pp = 0;
_y = _offs - _result[_pp] * _fact;
gfx_lineto(_x, _y);
);
...
Last edited by mschnell; 11-12-2019 at 12:09 AM.
|
|
|
11-11-2019, 11:47 PM
|
#7
|
Human being with feelings
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,687
|
.... and a preliminary description:
desc:
author: Michael Schnell (mschnell@bschnell.de)
version: 1.0
changelog: initial release
donation: United Nations Foundation http://www.unfoundation.org/
about :
## Description
MIDI CC fluctuation generates a randomly fluctuating 14 bit (high resolution) CC Midi data stream.
The fluctuation is generated by randomly increasing / decreasing the current CC value. The way this is done, can be "humanized" by several parameters.
"Midi Channel" selects the midi channel to output the CC messages
"CC" selects th CC number. As High resolution CC is used only CC#s 0..31 are selectable.
"Delta wide (^1)" controls the amount linear value of the random delta increasing / decreasing the output
"Delta mid (^3)" controls the amount a value of a delta value that covers less of the extreme ends
"Delta narrow (^5)" controls the amount a value of a delta value that covers even less of the extreme ends
"Hold speed" for humanizing a directivity of the fluctuation is implemented. This parameter defines how of then the direction and migrating speed is supposed to change
"Hold mix" defines the intensity of the directivity vs a purely random walk.
"Speed (Roughness)" defines the factor of the random value that is added to the current output value.
"Result wide (^1)" defines the force to pull back the output to the center in a linear (proportional to the displacement) way.
"Result mid (^3)" defines the force to pull back the output to the center in a way increasing with the displacement
"Result narrow (^5)" defines the force to pull back the output to the center in a way increasing with the displacement even more.
"maximum step" defines the step size (per audio block) to the raw output is allowed to fluctuate
"gain" and "bias": values to multiply the output with and to add to the output.
The other sliders show the generate signal in realtime:
"Delta": the current raw random delta value
"Hold": the current hold value
"Delta with Hold": value to be added to the raw result
"Result raw": Result before applying gain and bias
"Result -1 ... 1": Normalized output value
"Result Midi (0 ... 16383)": High resolution Midi CC output value
A graphics shows the history of the "Delta with Hold" value in blue and the history of the output value in yellow.
-Michael
|
|
|
11-12-2019, 06:17 AM
|
#8
|
Human being with feelings
Join Date: Jul 2011
Location: Brooklyn
Posts: 2,613
|
Thank you!
__________________
The reason rain dances work is because they don't stop dancing until it rains.
|
|
|
11-12-2019, 01:53 PM
|
#9
|
Human being with feelings
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,687
|
I just uploaded an improved version to ReaPack (including an improved description).
-Michael
|
|
|
Thread Tools |
|
Display Modes |
Linear Mode
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -7. The time now is 11:52 AM.
|