March 21, 2007

Replication...

by Chris Randall
 

Okay, this is turning in to more than a simple "throw a lag in there and release an update" kind of thing. There are four particular instances where clicks occur in Replicant. What they are, and what we've done, are as follows:


1. Clicking when the audio engine switches from the "live" feed to the "loop" feed and back when in duck mode. This was caused by the audio engine switching streams at something other than zero crossings. A very quick fade (on the order of a millisecond or two) on the in and out of the "live" feed solved this problem. FIXED.


2. Clicking in the looping engine itself, caused by loops that are cut at something other than zero crossing points. Apparent in mix mode, but obvious in duck and send. This was solved by recording a very quick fade at the beginning and ending of loops as they are recorded. (There was already one on the beginning; we just put one on the end.) FIXED.


3. Clicking when audio first enters a filter, and that filter is anything but wide open. This occurs in all three modes. We haven't figured out why this is happening yet. FIXED, sort of. We got the filter popping fixed, but Replicant Whack-A-Mole means that we created a new problem with this. Whee.


4. Clicking when the following conditions occur: loop length is set to anything larger than 1/16, and a retrigger occurs mid-loop. Say you have triggers on steps one and three, and the loop length is set to 1/4 note. Obviously, step three is only 1/8th note, or half of the desired loop length. So the loop will only play half-way before getting retriggered. Thus it isn't able to play the fade-out that was recorded to fix the clicks in instance #2, noted above. This one is the biggest bear of all, and we're not sure how to address it, as in order to play a crossfade, the plugin would have to know that a random trigger is going to occur on a given step. In normal programming, this click can easily be avoided. But when you're using heavy randomization of the loop length, and the sequencer mode is set to "retrigger," you get a lot of these.


So, here's what we're going to do: we're going to release an update shortly that has the first and second instances (which are currently unavoidable) fixed, but not the third and fourth (which are more or less avoidable, except in certain circumstances.) We'll continue working on this exclusively, and release another update when we have fixed the third and fourth instances.


As I mentioned on KvR, we designed this plugin with drum slicing in mind, and it didn't really occur to us that it would see such heavy use on other material. We didn't rush the release of this product; we don't rush any of our products. We release them when we feel they do what we want them to; Replicant is perfectly capable of slicing straight-time drum loops ad nauseum, and you'll never hear a click that will be more apparent than the program material. Using it on sustained material is certainly feasible in its current state, but you have to remember that it is, as I've mentioned previously, like drying your cat in the microwave. It _can_ do it, but it isn't very good at it. The final revision will basically have the entire looping engine re-written to allow it to excel at slicing sustained material, so the cat will dry un-harmed.

 
 
 

14 comments:

Page 1 of 2
 
 

 
Mar.21.2007 @ 11:41 PM
brandon daniel
And you know as soon as you eradicate the clicks someone's going to ask to have them back... on a switch!
 
 

 
Mar.22.2007 @ 12:31 AM
Chris Randall
That someone is gonna get pimp slapped.

-CR

 
 

 
Mar.22.2007 @ 12:42 AM
moyashi
A reviewer in the current TapeOp calls Replicant "...the best beat-slicer you've ever heard." Interesting timing - when it rains it pours.
 
 

 
Mar.22.2007 @ 1:20 AM
Chris Randall
I'm fairly certain the TapeOp review is by our good friend InverseRoom. Not 100% positive on that.

-CR

 
 

 
Mar.22.2007 @ 5:41 AM
boobs
you guys rule and your openess about it all is strikingly awesome.

 
 

 
Mar.22.2007 @ 6:33 AM
noisegeek
So, for someone who is not as knowledgeable as they'd like to be when it comes to music theory, what exactly is swing? Technically that is. I was under the impression that it was just a slight but consistent variation in timing. Is that wrong? Also, if that is what it is, why is it impossible to build into a product like replicant?
Not trying to be a smart-ass, just curious.
 
 

 
Mar.22.2007 @ 7:12 AM
Artemiy Pavlov
Swing, as it is used in modern music, typically refers to when each second (i.e. each even) 16th note to be delayed by a certain amount. The bigger this amount, the more the rhythm "swings".
 
 

 
Mar.22.2007 @ 7:15 AM
moyashi
noisegeek,

To answer your question, get your geek on with this:
link [www.amazon.com]">link [www.amazon.com]
Gunther Schuller's "Early Jazz" - a landmark academic study.
You may be glad to know that early jazz was also considered noise by most of "polite" (i.e. white) society.

 
 

 
Mar.22.2007 @ 11:07 AM
Chris Randall
Noisegeek,

You could also look at it like this: any given 8th note has two 16th notes in it. Imagine a line that demarcates the two, directly in the middle. Attach a knob to that line, and as you turn the knob, the line moves to the right. The first 16th note becomes longer, and the second one becomes shorter.

The reason this is a problem for a looping engine is thus: the slices aren't the same size, so we effectively need two samples, not one. And not only that, but pretty much every sequencer that does swing does it differently, so there's really no way to make a device that can match MPC60 swing (the swing by which all other swings are judged), Logic swing, and Cubendo swing.

Furthermore, live drum loops that have pronounced swing (like the ubiquitous Substitution break) have an _ENTIRELY_ different feel than sequenced swing, because the drummer wasn't consistently timing his lope, but was rather doing it on feel. In the case of the Substitution break, this means the second bar of the break has far more swing on it than the first bar, because he was anticipating the fill.

In any case, it is incredibly difficult to pull off for something like this. Impossible? Doubt it. Are we gonna do it? No. If you want to slice loops with swing, you're going to need to do one of two things:

a) live with having the beginning of every other 16th note nipped off, or...

b) find another product that can do it, because ours can't.

-CR

 
 

 
Mar.22.2007 @ 4:09 PM
RexRhino
It probably doesn't make it any easier that nowadays you could have your swing be controlled by midi velocity, or an lfo, and have swing widely shifting throughout a piece.
 
 

 
Page 1 of 2
 
 

Comment:

 

Sorry, commenting is closed for this blog entry.