MspectralDynamics
-
- KVRist
- 91 posts since 18 Apr, 2015
Vojtech, as Ive shown in previous posts, Reaper can be tricked with serial bus routing to think that 2 tracks are not directly feeding each other sidechain (actually, they are in way, but not completely)
Since they are not 100% directly communicating (no feedback loop involved), there are 3 differences I can see:
1-Some harmonic content while cutting or boosting wont be altered the same way (because the 2 tracks communicate only 1 time with each other, and thats why there are no loop)
2-Making a cut at same place in the 2 two tracks will only make a hole, instead of a feedbackloop (same reason as '1-')
3-And I guess maybe some phase stuff (because... there is always unpredictable ''phase stuff'')
BUT: If you set properly each band **to not 'overlap'** between the 2 tracks, you can almost get what sidechaining 2 tracks mutually would give almost 100% *I think*. Then with 4 instances of MMultianalyzer (1 pre, 1 post on each track) you can get a visual idea of what Sidechaining in both track is doing
=====
What do you mean robertszalapski?
Since they are not 100% directly communicating (no feedback loop involved), there are 3 differences I can see:
1-Some harmonic content while cutting or boosting wont be altered the same way (because the 2 tracks communicate only 1 time with each other, and thats why there are no loop)
2-Making a cut at same place in the 2 two tracks will only make a hole, instead of a feedbackloop (same reason as '1-')
3-And I guess maybe some phase stuff (because... there is always unpredictable ''phase stuff'')
BUT: If you set properly each band **to not 'overlap'** between the 2 tracks, you can almost get what sidechaining 2 tracks mutually would give almost 100% *I think*. Then with 4 instances of MMultianalyzer (1 pre, 1 post on each track) you can get a visual idea of what Sidechaining in both track is doing
=====
What do you mean robertszalapski?
- KVRAF
- 2686 posts since 9 Jul, 2015 from UK
Well there is the capture button that auto sets the threshold, but to be honest in MSD you don't need to do that. Just feed in the sidechain and it will already duck the correct frequencies. Just set the slope and smoothness accordingly.
Jason @ Melda Production
-
- KVRist
- 91 posts since 18 Apr, 2015
Oh I'll try Capture then maybe thats what Im looking for! Why havent I thought of this before thanks jmg8!
Ive associated exclusively ''Capture'' with Noise Profile; my bad.
But as I said in MSP, I want to leave untouched a lot of stuff, and a ''full-range'' threshold would duck parts I dont want to be ducked
Since G1 and G2 are sidechaining each other accordingly to the different pocket of Hz I want to keep dominant for each, *I dont want any overlap*, since it would make additive cut=holes (you understand?)
Overlap would results in 'feedbackloop'' if they were 100% directly sidechaining each other but in that case, the only risk is to make holes.
Ive associated exclusively ''Capture'' with Noise Profile; my bad.
But as I said in MSP, I want to leave untouched a lot of stuff, and a ''full-range'' threshold would duck parts I dont want to be ducked
Since G1 and G2 are sidechaining each other accordingly to the different pocket of Hz I want to keep dominant for each, *I dont want any overlap*, since it would make additive cut=holes (you understand?)
Overlap would results in 'feedbackloop'' if they were 100% directly sidechaining each other but in that case, the only risk is to make holes.
-
- KVRist
- 91 posts since 18 Apr, 2015
jmg8, just tried 'capture' while sidechain enabled in MSP and thats exactly what I wanted; then I can just 'draw off' stuff I want to keep untouched
otherwise have you tried the routing I use in reaper?
otherwise have you tried the routing I use in reaper?
-
MeldaProduction MeldaProduction https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=176122
- KVRAF
- 14325 posts since 15 Mar, 2008 from Czech republic
Very well!!astramistil wrote:jmg8, just tried 'capture' while sidechain enabled in MSP and thats exactly what I wanted; then I can just 'draw off' stuff I want to keep untouched
- KVRian
- 1094 posts since 23 Sep, 2006
Glad you found what you needed.
Before this thread dies though, I just wanted to reiterate the idea of having a tool that can be used over a whole mix. Place one instance on each track, all instances in a session communicate together to feed frequency data about each track. Then prioritization tools allow each track to determine what frequencies from each track should get ducked.
While it sounds complicated, it is essentially spectral dynamics with multi analysers ability to send and receive frequency data plus some additional frequency prioritization features.
As an idea, there could be the usual easy mode, where you just drag and drop a list of track names up and down to order priorities, and an advance mode when you get to draw or paint frequency priority curves for each track.
Before this thread dies though, I just wanted to reiterate the idea of having a tool that can be used over a whole mix. Place one instance on each track, all instances in a session communicate together to feed frequency data about each track. Then prioritization tools allow each track to determine what frequencies from each track should get ducked.
While it sounds complicated, it is essentially spectral dynamics with multi analysers ability to send and receive frequency data plus some additional frequency prioritization features.
As an idea, there could be the usual easy mode, where you just drag and drop a list of track names up and down to order priorities, and an advance mode when you get to draw or paint frequency priority curves for each track.
-
- KVRian
- 915 posts since 2 May, 2015
...well, if this thread continues as is, i'm gonna be 'otta of a job
...so lets kill now!!
...are you guys out'ta your minds????...seriously!!!
...remember WE sell special secret sauce, analog modeling, and the voodoo juju stuff!!!
...science, physics, and rational thought are the enemie(s), chicks just don't dig it!!!
.........aaaaahhhh, thank god the meds are kicking innnnnnnnnnn
..../s~
...this requires some serious thought...
...this requires some serious thought...
mba m2 15" | 16gig.ram | 1tb ssd | macOS 26.1 Tahoe
logic 11.2.2 | reaper 7.75 | cubase 14.0.4
focusrite.2i2 | A&H CQ18t
logic 11.2.2 | reaper 7.75 | cubase 14.0.4
focusrite.2i2 | A&H CQ18t
-
- KVRist
- 91 posts since 18 Apr, 2015
haha! Well steve2KR, I dont think a seasoned mixer could easily understand/hear how to get the best out of this kind of tool (unless there are 'tags' like ''more presence'' on lets say G1, then a 'wizard' appears and give choice to which trade-off (with a D/W slider) we have to consider: then we would be kindof doomed)
The Loudness War has almost ended (damnit you Spotify and Soundcloud), so a re-newed quest for sound quality will get us eventually more job and recognition as *artist*.
The Loudness War has almost ended (damnit you Spotify and Soundcloud), so a re-newed quest for sound quality will get us eventually more job and recognition as *artist*.
Last edited by astramistil on Wed Apr 06, 2016 1:58 am, edited 1 time in total.
-
- KVRist
- 91 posts since 18 Apr, 2015
Vectorwarrior, this is what I think I can accomplish with my actual reaper routing, but the kind of ideal tool we are talking about will have to deal *i think* with 2 main issues:
1rst-feedback loop : how to set pocket of Hz so each track has a set priority hierarchically (sorry for my bad english, I'm french); in other words: when a highest track in hierarchy is playing, other in same freq range are bypassed (otherwise=loop);
then if that pocket diminish in energy, which other track have 2nd priority take on that energy (I dont know if I am clear, but this is the most natural and optimal way I can think of)
e.g.: (at a specific time in a song)
''Priority rank set for 120-160hz, from 25%L to 25%R'' (because we will have to consider stereo too..)
1-Bass = 70% active
2-G1 = 80% --- so 100%-70% (Bass) = G1 can take 30% (loss of 50% of its energy in that range)
3-G2 = 60% --- so 100% - 70% (Bass) - 30% (G1) = 0%
So G2 = entirely ducked (or not completely depending on 'range' setting, so we can keep 'layering' effects).
(**in my actual reaper template, I have to set manually these hierarchies; a tool that could do that automatically with a kind of 'matrix' would be awesome in term of workflow)
------
2nd issue: Psychoaccoustic stuff we havent think of. Trial-and-error, case per-case, etc. for most of us will reveal them
===
What do yo think?
1rst-feedback loop : how to set pocket of Hz so each track has a set priority hierarchically (sorry for my bad english, I'm french); in other words: when a highest track in hierarchy is playing, other in same freq range are bypassed (otherwise=loop);
then if that pocket diminish in energy, which other track have 2nd priority take on that energy (I dont know if I am clear, but this is the most natural and optimal way I can think of)
e.g.: (at a specific time in a song)
''Priority rank set for 120-160hz, from 25%L to 25%R'' (because we will have to consider stereo too..)
1-Bass = 70% active
2-G1 = 80% --- so 100%-70% (Bass) = G1 can take 30% (loss of 50% of its energy in that range)
3-G2 = 60% --- so 100% - 70% (Bass) - 30% (G1) = 0%
So G2 = entirely ducked (or not completely depending on 'range' setting, so we can keep 'layering' effects).
(**in my actual reaper template, I have to set manually these hierarchies; a tool that could do that automatically with a kind of 'matrix' would be awesome in term of workflow)
------
2nd issue: Psychoaccoustic stuff we havent think of. Trial-and-error, case per-case, etc. for most of us will reveal them
===
What do yo think?
Last edited by astramistil on Wed Apr 06, 2016 3:28 am, edited 1 time in total.
- KVRian
- 1094 posts since 23 Sep, 2006
I'm not 100% sure I follow, but I think what you're saying is that gain reduction over multiple tracks would accumulate and could cause complete attenuation on lower priority tracks.
I don't personally see the problem with that as it would be restricted to specific frequencies, based on priority and also volume intensity, should make the system pretty clean and relevant. Plus, like you say, each track/frequency should have a range amount to optionally stop complete attenuation if you don't want that. Again, spectral dynamics can do all this.
I'm on vacation so don't have the ability to try the reaper thing, but it really should be a melda tool so it can be used in all hosts. I'll take a look when I get home though, reaper rocks!
I don't personally see the problem with that as it would be restricted to specific frequencies, based on priority and also volume intensity, should make the system pretty clean and relevant. Plus, like you say, each track/frequency should have a range amount to optionally stop complete attenuation if you don't want that. Again, spectral dynamics can do all this.
I'm on vacation so don't have the ability to try the reaper thing, but it really should be a melda tool so it can be used in all hosts. I'll take a look when I get home though, reaper rocks!
-
- KVRist
- 91 posts since 18 Apr, 2015
From what I think I understand, not only the would accumulate, they would fight eternally for dominance if there is no ''hierarchy'' system.Otherwise,
Feedback loop = when G1 tries to duck G2, and G2 tries to duck G1 at same time/range of hz = paradox, because the amount G1 tries to duck G2 is *based upon its own energy* (which is being ducked by G2, which is being ducked by G1, which is being ducked by G2, which is being ducked by G1 etc.etc.etc.etc.etc. going mad, Escher stuff.).
=========
(I use the term complex as: ''1. A whole composed of interconnected or interwoven parts'')
In my template (lets say Guitar 1 'vs' 2):
1) ''G1'' is the lower level (e.g.: 3 recorded rhythm tracks)
2) then G1 output is sent to ::G1:: (summed G1 tracks)
3) finally, ::G1:: output is sent to [G1] where complex mixing happens (e.g.: [G1]'s MSP sidechain is fed with ::G2::)
Where reaper is tricked (I think), its because it would be like bouncing ::G1:: and ::G2:: to other tracks, then feeding [G1] and [G2] MSP's sidechain accordingly with those tracks. So Reaper wont act as if they were interconnected, though you use MSP as if they were.
The advantage of using a 'serial busses' flow (instead of bouncing) is that if you change a thing at a lower level (lets say an EQ or Compressor at ::G1::), it will react immediately upon upper levels.
(you understand?)
I have then to set manually (or with caputre!) threshold in each MSP according to which 'hz' I want to dominate in each track. So I have for each complex bus ([G1], [G2] etc.) 6 MSP tagged ''G1, G2, Bass, Drums, Vocal, Pads'' 'inter-sidechained' by each instrument bus (::G1::, ::G2::, etc)
Feedback loop = when G1 tries to duck G2, and G2 tries to duck G1 at same time/range of hz = paradox, because the amount G1 tries to duck G2 is *based upon its own energy* (which is being ducked by G2, which is being ducked by G1, which is being ducked by G2, which is being ducked by G1 etc.etc.etc.etc.etc. going mad, Escher stuff.).
=========
(I use the term complex as: ''1. A whole composed of interconnected or interwoven parts'')
In my template (lets say Guitar 1 'vs' 2):
1) ''G1'' is the lower level (e.g.: 3 recorded rhythm tracks)
2) then G1 output is sent to ::G1:: (summed G1 tracks)
3) finally, ::G1:: output is sent to [G1] where complex mixing happens (e.g.: [G1]'s MSP sidechain is fed with ::G2::)
Where reaper is tricked (I think), its because it would be like bouncing ::G1:: and ::G2:: to other tracks, then feeding [G1] and [G2] MSP's sidechain accordingly with those tracks. So Reaper wont act as if they were interconnected, though you use MSP as if they were.
The advantage of using a 'serial busses' flow (instead of bouncing) is that if you change a thing at a lower level (lets say an EQ or Compressor at ::G1::), it will react immediately upon upper levels.
(you understand?)
I have then to set manually (or with caputre!) threshold in each MSP according to which 'hz' I want to dominate in each track. So I have for each complex bus ([G1], [G2] etc.) 6 MSP tagged ''G1, G2, Bass, Drums, Vocal, Pads'' 'inter-sidechained' by each instrument bus (::G1::, ::G2::, etc)
Last edited by astramistil on Wed Apr 06, 2016 4:50 am, edited 1 time in total.
-
- KVRist
- 91 posts since 18 Apr, 2015
=================
Then every track can *kindof* communicate with each other, but the main challenge (which is the hard part, lots of trial-and-error, painful settings) remain:
***If I want G1 to duck all other instrument (MSP-like ducking) from 2k to 4k when it plays except for Vocals which are 1rst rank in that range, but I also want the snare to keep only 3k for snap (snare = rank 1 for 3k only), and layer G2 only at 4k (rank 3, after Vocals and G1) but can entirely duck from 2k to 3.9k (rank 6) etc.. I have no choice to be very specific with how I set busses routing, thresholds and sidechain input energy.
In that example:
1) Vocal should predominate G1 (easy MSP ducking)
2) Then when vocals are not playing, G1 will have *to be the 1rst* to get the energy vocals leave and duck lower priority tracks.
So when Vocal plays, effects of G1 as sidechain on other tracks diminish (and note that lower priority track would also duck when vocal is playing) (*but remember, in my template tracks are not directly communicating upon complex changes, they use ::G1:: as sidechain source, not the output at [G1] otherwise.. LOOP!
***!! But how to set this kind of hierarchy? Maybe with ALOT more busses with serial flow as Im currently using, tagged 'rank1' (then set a bunch of MSP), then 'rank2' , 'rank 3', etc. (that would be painful to set and use, AND I WONT TRY!)
e.g.: (at a specific point in a song)
[Rank 1] = G1 cut 4db at 4k in G2
[Rank 2] = Bass would want cut 6db in G2 at 4k, but G1 (priority) has already cut 4db, so Bass can only cut 2db at 4k
other painful task:
3) Snare want to sidechain G1 at 3k only, but from 2k to 4k (except 3k) snare have to duck from G1 sidechain input (so I would have to draw a pinpoint threshold to duck G1 at 3k, then in [Snare]'s MSP set active threshold from 2k to 4k and then pinpoint a ''draw-off'' at 3k (not convinient, painful task too)
======
Well, I hope what Im writing makes sense or at least can help bringing new ideas/ways to resolve this.
If you are interested to try it out for yourself, I can post a Reaper template with all routing already made so you guys can try.
Then every track can *kindof* communicate with each other, but the main challenge (which is the hard part, lots of trial-and-error, painful settings) remain:
***If I want G1 to duck all other instrument (MSP-like ducking) from 2k to 4k when it plays except for Vocals which are 1rst rank in that range, but I also want the snare to keep only 3k for snap (snare = rank 1 for 3k only), and layer G2 only at 4k (rank 3, after Vocals and G1) but can entirely duck from 2k to 3.9k (rank 6) etc.. I have no choice to be very specific with how I set busses routing, thresholds and sidechain input energy.
In that example:
1) Vocal should predominate G1 (easy MSP ducking)
2) Then when vocals are not playing, G1 will have *to be the 1rst* to get the energy vocals leave and duck lower priority tracks.
So when Vocal plays, effects of G1 as sidechain on other tracks diminish (and note that lower priority track would also duck when vocal is playing) (*but remember, in my template tracks are not directly communicating upon complex changes, they use ::G1:: as sidechain source, not the output at [G1] otherwise.. LOOP!
***!! But how to set this kind of hierarchy? Maybe with ALOT more busses with serial flow as Im currently using, tagged 'rank1' (then set a bunch of MSP), then 'rank2' , 'rank 3', etc. (that would be painful to set and use, AND I WONT TRY!)
e.g.: (at a specific point in a song)
[Rank 1] = G1 cut 4db at 4k in G2
[Rank 2] = Bass would want cut 6db in G2 at 4k, but G1 (priority) has already cut 4db, so Bass can only cut 2db at 4k
other painful task:
3) Snare want to sidechain G1 at 3k only, but from 2k to 4k (except 3k) snare have to duck from G1 sidechain input (so I would have to draw a pinpoint threshold to duck G1 at 3k, then in [Snare]'s MSP set active threshold from 2k to 4k and then pinpoint a ''draw-off'' at 3k (not convinient, painful task too)
======
Well, I hope what Im writing makes sense or at least can help bringing new ideas/ways to resolve this.
If you are interested to try it out for yourself, I can post a Reaper template with all routing already made so you guys can try.
- KVRian
- 1094 posts since 23 Sep, 2006
Again, this really needs to be a Melda solution, that way there would be no fear of a 'chain reaction' or other weirdness. I don't want to have to mess around for ages with routing in reaper to make this happen. So while I'm curious to see if this will sound good, it would really need a more for-purpose focused system to be feasible for me, I work with too many tracks and too many sessions to mess around with loads of setup 
-
- KVRist
- 91 posts since 18 Apr, 2015
Haha! I totally agree.
I heard that Ircam has already a tool that can do this, but there are SOooo picky for who can use it. Lets hope Vojtech will find a clever way to resolve all this!
I heard that Ircam has already a tool that can do this, but there are SOooo picky for who can use it. Lets hope Vojtech will find a clever way to resolve all this!
- KVRAF
- 2686 posts since 9 Jul, 2015 from UK
+1vectorwarrior wrote:Glad you found what you needed.
Before this thread dies though, I just wanted to reiterate the idea of having a tool that can be used over a whole mix. Place one instance on each track, all instances in a session communicate together to feed frequency data about each track. Then prioritization tools allow each track to determine what frequencies from each track should get ducked.
While it sounds complicated, it is essentially spectral dynamics with multi analysers ability to send and receive frequency data plus some additional frequency prioritization features.
As an idea, there could be the usual easy mode, where you just drag and drop a list of track names up and down to order priorities, and an advance mode when you get to draw or paint frequency priority curves for each track.
This is exactly the idea I had and tried to describe above.
Vojtech says that sending the audio between tracks is almost impossible. But I don't understand this. Because Multi Analyser can send information from many tracks to draw a frequency graph, this frequency graph ( doesn't matter if it's audio or not) is all we need to feed info into MSD?
Jason @ Melda Production
