Saturday, 28 April 2007

Grain Resynth Module

A nice, simple post this time.

Watch the video

A couple of posts ago I was playing with an instrument, built around a Sample Loop module, which would randomly jump from place to place within a sample as the sample played. A Reaktor builder called Don Dailey (tubaman on NI's R5 forum) turned it into another instrument, called EOS (you can see it in the R5 user library - thanks for the work Don, really good stuff!). There was a bit of discussion about it, and Don wrote in one of his posts that the instrument works better with samples that have a lot of variation in harmonics or sound texture - so that, when the instrument jumps from place to place in the sound, your hear an audible change in the output. I thought, why not investigate quick ways to generate that kind of sound, and so decided to throw some recordings I've got into a Sample Resynth module.

I found that, with the right sample file, you can very quickly achieve some great atmospheres without a lot of building. One of the sounds I use in the video is a recording of Indian temple bells, which I made last year in Darjeeling. I've uploaded it to The Freesound Project in case you want to play (it might take a while to get through moderation).

Oh, and I'm experimenting with Azureus Vuze as a media host, so let me know how you get on with that; and I'm also spending less time editing the content down, so it's a bit slower in pace than previous entries. Again, drop me a line and let me know what you think. Hope you find it useful...

Monday, 16 April 2007

Event Table & Iteration Modules

Event table and Iteration modules: Playing with an event module; using Reaktor's Iteration module to program it.

Watch the video

I've been using event tables in a simple way for a while: filling them with random numbers, and repeatedly playing sets of those numbers within pattern sequencers.

But I've been struggling when trying to build a multi-row table, because I don't know how to make Native Table Files - data files in which Reaktor stores event table information, which can contain any number of rows. All I've been able to do so far is to import text files, which can only contain one row of data. So I decided to build an instrument which let me:
  • Import a (single-row) text file into an event table
  • Write that information into a second, multi-row event table, in a specific row
  • Repeat until the multi-row event table is full
Then, I can save the multi-row data as a genuine Native Table File.

I decided to use an Iteration module, featured in the second half of the video, to whip along a row of data, reading a cell from my "import" event table, and write it into my multi-row, "target" event table. While I was working, I started to realise what the Iteration module might be useful for in the future, so I thought it was well worth a diary entry.

Monday, 2 April 2007

Glitch Sampler Part 12

Making a glitchy pad sample instrument, part 12: refining event processing using separator & value modules

Watch the video

  • This instrument is turning into quite a neat, small-scale example of using value, separator and merge modules for processing events... I've seen these modules used a lot in advanced ensembles; they're obviously very, very useful.

Glitch Sampler Part 11

Making a glitchy pad sample instrument, part 11: Improving my event processing - merging, not adding

Watch the video

  • This episode is about refining a hacked-together feature, so that my instrument will be more useable in future (in this case, with a wider range of sample maps).
  • (1:53) There is a tiny probability of a random value of exactly zero, but I think it'll be a "win-the-lottery" kind of chance.

Glitch Sampler Part 10

Making a glitchy pad sample instrument, part 10: getting rid of event loop warnings

Watch the video

  • I've come back to the instrument after a rest, to resolve a couple of issues with the design.
  • In this episode, I'm enabling event loops for my instrument, because Reaktor keeps popping up event loop warnings, but I think I'm doing nothing particularly dangerous - in fact I think Reaktor might be detecting a loop that isn't really there. It's also possible to enable event loops at macro level; so a more precise approach would be to encapsulate my random number generator and my sample loop module in a single macro, and enable event loops only for that macro.
  • If you do have a potentially dangerous event loop in your structure, another method of making it less harmful is to introduce a delay (either with a single delay or a unit delay module) into the loop. From what I've read, this should mean that the loop can't generate events at a frequency that will crash Reaktor.
  • Just for fun, I went away and built an ensemble with a real, deadly event loop and this one crashes Reaktor instantaneously: it just disappears in a flash, no warnings or anything. So... never do this: