Old 11-11-2019, 02:12 PM   #1
Marie123
Human being with feelings
 
Join Date: Jun 2019
Posts: 3
Default 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!!
Marie123 is offline   Reply With Quote
Old 11-11-2019, 03:06 PM   #2
DVDdoug
Human being with feelings
 
Join Date: Jul 2010
Location: Silicon Valley, CA
Posts: 1,993
Default

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".
DVDdoug is offline   Reply With Quote
Old 11-11-2019, 03:40 PM   #3
ivansc
Human being with feelings
 
Join Date: Aug 2007
Location: Near Cambridge UK and Near Questembert, France
Posts: 19,357
Default

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.
__________________
"What a dick comment. I'm gonna make sure to avoid your name." Dicks other than Trump can speak????
ivansc is offline   Reply With Quote
Old 11-11-2019, 03:51 PM   #4
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 8,416
Default

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.
mschnell is offline   Reply With Quote
Old 11-11-2019, 08:30 PM   #5
vdubreeze
Human being with feelings
 
vdubreeze's Avatar
 
Join Date: Jul 2011
Location: Brooklyn
Posts: 1,856
Default

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.
vdubreeze is online now   Reply With Quote
Old 11-11-2019, 11:46 PM   #6
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 8,416
Default

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.
mschnell is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 08:21 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2020, vBulletin Solutions Inc.