Kore, Komplete, Reaktor @ cdm

Minisite with tutorials, tips, features on making the most of Native Instruments music production tools

Last time around, we had a look at creating a basic grain delay from scratch. It’s usable, but why stop there? Here are some improvements.

grain2-01.gif

Download the latest version and dig right into the structure.

One problem you may have noticed about the first version is that the grain length control doesn’t know how the delay control is set, so it can go out of bounds. A bit of (non-scary) math is in order to set that right.

grain2-02.gif

Here we see the use of an X+ module. I’ve changed the “Delay” control so it ranges from zero to 1 (actually 0.99, but close enough) in order to use an AddMovement macro I designed as a basic compound LFO. This is a habit you should pick up, by the way – work with zero to one ranges whenever possible, because they’re ridiculously easy to scale and shift around. This is exactly what happens here when the output of the LFO modified Delay control hits the X+ module.

The first port takes the value you want to multiply. The second takes the number you want to multiply it by, and the third takes the value you want to add to it. This is the best way to scale something and set its start point – think of the second port (the multiplier) as a size control. Here, we’re multiplying the zero to 0.99 range of the Delay knob with the buffer size – 1000 milliseconds. The GrainLen(gth) goes to the + port, shifting the delay point over by whatever length of grain you set. This keeps the range of the delay buffer being scanned from “falling off the edge of the world”, so to speak – what programmers call an index out of bounds error. All the error will do in this case is cause silence or intermittent silence, but still, we have a separate control for adding that deliberately if we want – the Distance knob – so there’s no need to have it occur accidentally elsewhere.

If you want to see how the controls and the X+ module interact to produce values, hook them up to some of the input ports on the Event Watcher debugging tool we discussed earlier.

Now let’s take a look inside the AddMovement LFO for the Delay value.

grain2-03.gif

The heart of this macro is two LFO units whose frequencies are modified by Slow Random modules. The values are multiplied together and then multiplied by the Delay value to create a varying output. A selector crossfades between a value of 1 (Delay value therefore not modified at all) and whatever value is produced by the two LFO units. This allows you to set the degree to which the AddMovement macro modifies the Delay value. The Pos input is controlled by an XY module.

I’ve used an XY control instead of a knob or slider because it looks nicer on the panel, and it’s quick and dead easy to implement – if you’re using the X value as a control, loop it back into its input using a Merge module so you get a graphical representation of the value, and send a constant of 1 to the Y input.

If you look inside the AddMovement macro used for the Distance control, you will see that the LFO is adding to (and subtracting from, when the LFO value goes negative) the Distance control, rather than multiplying. That’s because I want the value to be greater than one sometimes, so there can be space between grains.

grain2-04.gif

Now, why bother with all this LFO malarkey when there are perfectly good jitter inputs on the Cloud Delay modules that do something similar? For me it comes down to artistic preference. I find I get a more unique sound this way. Instruments that use the jitter inputs sometimes come across as a bit same-y. It depends what you’re after. If you build your own little LFO macros and whatnot, you may find yourself reusing them and modifying them all over the place in your creations – and that can give you a unique voice.

Another change is the multiplier module between the Attack control and the Att and Dec inputs on the Grain Cloud.

grain2-07.gif

Why are we multiplying the value by itself? Because that creates an exponential curve – with a zero to one input (there’s that magic range again) the values swoop down to very small numbers very quickly when you turn the control down. Here’s what that curve looks like:

parabola.gif

I’ve also added, at Eoin Rossney’s suggestion, 1 and -1 values to the Pan inputs, to get hotter signals out of the L and R outputs. Finally, two Crossfade modules are used to control the dry/wet effect mix. This is a structure you’ll be using a lot if you plan to build other effects.

grain2-05.gif

With the addition of the LFOs, this becomes as much of a wind chime as an effect. If you capture a really interesting bit of audio in the buffer and set the controls just so, you’ll end up sitting back and listening to the results for some minutes. One last tip: if you’ve captured live audio and created a magic moment, you can save the audio buffer by right clicking on the waveform display on the frong panel and choosing “Save Delay Buffer”. You can’t load buffers directly, but it’s a snap to feed something back in using the looper I included in the downloadable patch last time.

grain2-06.gif

What improvements do you want to add next? I’m all ears.

8 Responses

  1. Jarson

    Thanks Peter for this update… However, I would love to have a step-by-step video like the first one you did. The video was easy to follow and I did not even need to download the finished product, as mine worked great. I prefer to not download anything, as it is a ‘cheat’ that does not get me to learn anything.
    I just get lost after a few paragraphs in this article. It just starts to look like a big math problem on an SAT.

  2. Peter Dines

    You know, it’s funny, Jarson – different people have different learning styles, and I thought I was doing everyone a favor by posting this segment as an article with screen captures. That way, the pictures hold still and let you think about the connections.

    I don’t know about completely redoing this as a from-scratch video, but what I might do is add a screencast supplement outlining the changes I’ve made. I do want this to be approachable and not like an SAT. :-)

  3. Peter Kirn

    I love the videos, too, Jarson — thanks for the feedback. I think the idea here is that all of us (Peter, Eoin, and I) are working away on projects. Once they’re at a sufficient state to warrant a video, then we’ll pick up with the video. In the meantime, though, rather than not post anything, we’ll keep posting short stories and images for folks! And indeed, some people process information more easily in text, others in videos.

    We’re trying different stuff, though, so please keep the feedback coming — it’s really good to know!

    I need to get my screencast rig together here and I’ll be jumping in on that, as well. Stay tuned!

  4. endekks

    While videos might be useful, I find that maybe if you have some audio previews attached at the different stages so people can know what to expect sonically could prove useful – sort of like audio snapshots to monitor progress. Some of your readers who may be newer to Kore and Reaktor come here to learn, and they may not know what these effects and steps yield.

    Still, even without those, these are great. Keep it up!

  5. [...] 5. Build your own grain delay / live grain sampler. With the basics of clocks and grains in hand, you’re on your way to creating your own grain effect, as in the video here from Peter Dines. Try building the basic version, then add on some additional features. [Part 1 | Part 2 (improvements!)] [...]

  6. [...] it is running some audio, which I recorded on a Zoom H4 handheld recorder, into the granular delay we’ve been constructing here at Noisepages. If you’re like me and you have folder after [...]

  7. [...] modules or grain delays, the recordings can be directly saved with the instrument, unlike the grain delay based sampler we built earlier, where sample buffers have to be saved separately if you want to keep them. You [...]

  8. Elitractadast

    Miesiac Ciaza dziecka sa juz otwarte i zaczyna sie ono przesuwac w dol ku. Wazy ono okolo 2 kg, ciaza 40 cm dlugosci i. ciaza
    . obrzek kostek w miare jak ona i dziecko przybieraja objawy wadze oraz bole krzyza. Bedzie teraz ciaza pierwsze objawy szybko roslo oraz przeciagalo sie, kopalo i przemieszczalo z boku. Teraz matka przybedzie na wadze wiecej niz w poprzednich miesiacach. Objawy kostek w miare jak ona i dziecko przybieraja na wadze oraz bole krzyza.

Leave a Reply