23 February 2008

Plugin: Auto Audio Humanize

I've just finished up another small utility plugin in sonic birth (mac only). It's a device designed to randomly delay or advance audio clips in Live by a small amount, though it should work in other hosts too.

There are only two parameters:

Early/late base: sets a kind of base delay for the audio.

Random delay: represents the amount of random delay that is added to the Early/late base value.

The random delay value is re-generated each time the incoming audio drops to digital silence, so it works well for 'monosyllabic' audio clips separated by empty space (if the device is preceded by a plugin that adds a tail to the sound, such as a reverb, the random delay value might not be recalculated before the following sound begins).

Here's a video to give a quick idea of how it works. Here I've duplicated a track containing a pattern of drum hits and applied the Auto Audio Humanizer to the duplicate track. You can hear a phasing effect when the displacement is very small, and a more distinct repeat when it is large.
video
If you'd like to use the plugin, do the following:

1. If you don't already have it, install Sonic Birth (provides the framework necessary for the plug to work).
2. Install the Auto Audio Humanize component
3. If you want to tinker with the circuit, download the source file

21 February 2008

Laconic Records: Think twice before dealing with this seller

Update: Laconic Records have finally sent a replacement unit!


In a nutshell: If you deal with Laconic Records don't expect them to cooperate when things go wrong, and don't assume that PayPal offers adequate protection against non-delivery of items you order on eBay.

Here's the long version.

In November 2007, while searching for a good deal for a Vestax VCI-100 midi controller on eBay I found the German seller Laconic Records offering one for a good price. Laconic Records are a mail-order and distribution company based in Dresden, Germany.

The Laconic Records representative I contacted with a couple of pre-sale questions I had about the unit answered politely and promptly which gave me confidence to go ahead with the order.

After the package did not arrive I found out that DPD, the delivery company, had made a mistake. Their package tracking system showed that the package has been delivered to someone with the surname BERG at the address of my neighbor. There is no one of that name in my block, an my neighbors have not received any packages for me. (BERG, if you're reading, please get in touch!)

DPD informed me that since the package appeared to have been lost, the only way to proceed was for the seller (Laconic Records) to file a missing package claim.

This mistake was in no way the fault of Laconic Records, and I expected full cooperation from them to help resolve the problem to our mutual satisfaction. I contacted them to explain the problem expecting the same professionalism I had experienced in their responses to my pre-sale questions but to my dismay my emails and phone calls were not answered.

When it became clear that Laconic Records were not going to cooperate I opened a PayPal dispute claim to attempt to get my payment refunded that way.

A few weeks later, to my astonishment, PayPal closed the dispute in Laconic Records'
favor. The curt email from PayPal said the following:
The seller has provided valid tracking information on the above case. As a
result of this, your appeal can not be granted.
Valid tracking information? The tracking information shows in no uncertain terms that the package has been delivered to an unknown third party. PayPal has a peculiar understanding of 'valid'.

This has important implications if it is reflective of PayPal's general policy: it means that if you order an item, and the delivery company delivers it to an incorrect address, you are at the mercy of the seller to cooperate with you and refund your payment. If the seller does not cooperate, you've lost your money and PayPal will do nothing to help you. This should seriously undermine trust in PayPal. At least I will never use their service to order a physical item again.

Since PayPal failed to help, I'm now looking for legal advice on how to proceed. And hoping that in the meantime Laconic Records decide to cooperate.

I will update this page as the sorry saga unfolds.

If you have a blog or website and you want to help me to publicise this story, publishing a hyperlink to this post using the link text 'Laconic Records' would be very helpful. This needn't be a full blog post, it could be a small footnote eg. "In other news: Mormo is having some trouble with Laconic Records". Thanks!

Update: 28.03.08 Still no contact from Laconic Records. After speaking with a lawyer I have sent them a formal letter informing them that if I do not receive a refund within seven days I will start a legal procedure against them.

Update: 11.04.08 Today, roughly five months since ordering the controller, a replacement unit arrived in the post from Laconic Records. I've decided not to go ahead with legal action.

In a note enclosed with the unit they asked me to remove this article from the site. I won't be doing that since the article is still of relevance to people thinking of doing business with this seller. My advice: don't do it.

19 February 2008

Faking swing for audio clips in Ableton Live

Ableton live has a swing function, but its effect is limited to midi notes and warped audio clips. A recent post over at Wire to the Ear talks about how to use Live's swing capability. But if you're like me you have lots of separate, unwarped audio clips on your timeline, little 'monosyllabic' sounds. And if you want these to swing, Live won't help you.

If you need a simple swing for your audio clips, here's a quick and rough way to fake it.

Open a new set. Using audio clips, lay out a skeleton drum beat with a hihat line on every 16th. Open the song tempo automation lane on the master channel. Zoom in so that you're seeing a grid line on every 16th division, and use the pencil tool to draw this step on the first two 16th notes.

Select the first two 16ths of the master channel automation lane and duplicate them (apple+D) until the first bar is filled. Play through the pattern and experiment with different timings until you have a feel that your satisfied with. The greater the size between the tempo steps, the more extreme the swing will be. To make sure the automation steps always repeat the same two values, use the duplicate to copy them to the rest of the bar whenever you want to try a new feel.

Once you're happy with the feel, duplicate the automation pattern until it extends further than you expect your track to be long.

As with the groove quantize hack, the same gotchas apply:

  1. If you need to change tempo during a track this method isn't suitable.
  2. Be careful that you disable warp on single-hit clips that you place on the timeline, unless you want them smeared as the master tempo changes!
  3. Currently, Live only 'notices' the song tempo automation at the beginning of each 16th measure, so you may find in order to transfer a groove at an acceptable 'resolution' it may be necessary to double the song tempo before beginning this process.
  4. If you're using tempo synchronised effects (eg. a delay), these will behave unpredictably if your master tempo is fluctuating rapidly.

Ingenious plugin: Muxer Instant Sampler

Often, when musicians make plugins, they do without the gloss and bristling feature sets that characterise commercially developed devices and instead deliver something that solves a very particular problem in an ingenious way, like Muxer's Instant Sampler. It has no frills and a bargain basement GUI, but the potential to alter significantly the way you approach certain sequencing and performance tasks.

It's a midi triggered insert effect. It quietly sits on a track (perhaps on a bus) passing through audio untouched until it receives a midi note. While the note plays it records the incoming audio. On subsequent detection of that same note, the recorded audio is played back and the dry signal is muted until the note is released. Each note can hold its own recording.

The device has the capability of playing back from its buffer in reverse (reverse mode is activated by notes below a given velocity) and at altered speeds (via pitch bend).

With some thought and experimentation Instant Sampler can be effectively employed as part of a sequencing workflow as well as in a performance context.

16 February 2008

Song tempo automation in Ableton Live is not continuous

I just figured something out that would have saved me a lot of trouble if it had been mentioned in the Live manual: Live's song tempo automation is not continuous (in version 7 and below). Although you can draw a ramp in the song tempo automation lane, Live will only sample its value, and adjust the song tempo accordingly, at the beginning of each 16th grid line.

In the following diagram we can see that the tempo automation changes at A and B have no effect on the song tempo (we can tell because the waveform display of the repeating audio clip stays the same). The only tempo change that is picked up is C, because Live is only sampling the automation value at the beginning of every 16th.



This is pretty disappointing, and has consequences for anyone wanting to implement the 'fake groove quantize' approach that I talked about in a previous post.

Sidechain compression with Reaktor and Ableton Live

Back in 2006 I wrote the following how-to guide for achieving sidechain compression using Reaktor with Ableton Live (v4). Live 7 now has a sidechain capable compressor which may do everything you need, and there is an increasing number of third-party sidechain compression plugins available that also make this effect simple to achieve. But the information in this article may still be useful, particularly if you're interested in setting up sidechain capability in other Reaktor ensembles, and using them within Live.

Requirements:

  • Ableton Live, version 4 or higher.
  • Reaktor, version 4 or higher.

The aim is to get the audio from one channel (percussion) to influence how the audio from a different chennel (a pad sound) is attenuated over time. One of the ensembles included in reaktor can be modify to achieve this.

Setting up the channel that will get compressed

To begin with I created a pad sound stretching over a few bars. Pads are good for this example because you'll need a sound that remains at a fairly steady level to hear the final effect as clearly as possible. I'm using rendered audio files rather than midi so you can see how the waveforms look. Pad mp3

I'm adding a compressor to this channel because in the end this is the channel whose level i want to dip each time a percussive sound happens.

I'll add an instance of the 'Reaktor5 Surround' vst to the pad track. It's important to choose the surround vst since it allows you to feed multiple inputs to your reaktor instance. We'll need this to feed both the pad audio, and the percussion audio (from a different track) to the compressor.

In reaktor, open the 'Two Knees Compressor' ensemble (you can find it in the 'Effects' section).

Open the structure view of the Two Knees compressor. Select the 'L' and 'R' input modules and choose 'Duplicate Selection' to create two new inputs. For clarity you could rename these 'Key L' and 'Key R'. Attach the new inputs to the In1 and In2 of the 'max of 2 (abs)' module (this will automatically delete the existing connections to In1 and In2).

At the top level of the reaktor structure, attach the inputs 3 and 4 to the new 'Key L' and 'Key R' compressor inputs.

You can think of a compressor as having two parts. A level detection circuit, and an attenuation circuit (that typically does the 'squashing' of a signal's dynamic range by reducing it's level by varying amounts). Normally, the same signal is fed to both circuits. When the level detection circuit detects a level above the compressor's threshold setting, the attenuation circuit reduces the volume of the signal.

We now have the possibility to feed two independant signals to the two circuits. The changing level of one signal will determine how the other signal is attenuated over time.

Setting up the channel that controls the compression

I add a new audio channel and create a pattern from an individual drum hit. I chose a strong kick drum sample to clearly demonstrate the effect. Drum hits mp3

In order to feed the audio from the percussion channel to the key inputs of the compressor on the pad channel, I select the pad track in the percussion track's 'Output Channel' chooser (the pale drop down menu rectangle in the area to the right of the track that says 'Master' by default). Here I select the track number that corresponds to the track with the pad on it. After I do that, the bottomn drop down box becomes active too. This one is used to determine where the audio should enter the destination track, incase there's more than one choice.

In this case the options are: 'Track in', 'Reaktor 3+4', 'Reaktor 5+6'. I select 'Reaktor 3+4' to route the percussion audio to the key inputs of the compressor.

Making the percussion audible again

If I play the track at this point, the pad sound 'dips' wherever the drum notes have been placed, but the drum channel itself is making no sound. Ducked pad mp3

Next it's necessary to use a small workaround in order to hear the drums again. The drums need to be routed to a return track.

To create a new return track for the drums, I right click in the right hand part of the arrange screen and choose 'Insert Return Track'. I right click on your newly created return track and choose 'Rename' to give it a sensible name like 'Kickdrum' for instance.

Back on the drums track, I select 'Mixer' in the rectangular select box that reads 'None' by default. In the dropdown box directly below select 'Kickdrum' (or the name you gave to your return track). Now I drag the horizontal red line that's appeared in track upwards until it wont go any further. Now all the drum audio is being routed to both the sidechain (key) inputs of the compressor, and to the return track (which in turn feeds to the master output). If I play the track now i can hear the drums again, as well as the dipping pad. Drums dipping the pad mp3

The final image shows a new waveform demonstrating how the 'dipped' pad audio looks with the side chain compression applied.

(It's a good idea to save the modified ensemble under a new name if you think you're likely to want to use it again)




Addendum

Thanks to Nokatus for his post on the Ableton forum suggesting a cleverer way of arranging the audio routing:

By the way, have you considered using an effect send to feed the compressor key signal input, instead of doing it the other way around? I mean, instead of routing the drum track directly to the key inputs in Reaktor (in this case 3+4) and listening to it in the mix using a return track, just make a return track which is directed into Reaktor channels 3+4.

After this you don't need to use a return track as a workaround to actually hear the drum track; now you hear it as usual, and can use (and automate) the effect send knob in the drum track (and multiple other tracks as well) to directly control what and how much is used as the key signal at any given moment.