Friday, 18 May 2007

Event Tables #2: A Table With Multiple Rows

This post follows on from a previous post about Event Table and Iteration modules. Towards the end of that post, I was imagining using an event table with several rows of data; using Row 0 (the first row) to control some parameter of my instrument, using Row 1 (second row) to control another parameter, Row 2 (third row) to control a third parameter...

And someone on the Reaktor forum called my bluff and asked me to show how to do that. This week, I suddenly thought of how I might do it, so this post is an attempt to implement that technique:

Watch the video

I'm not actually making any noises this time (the last episode got a bit spooky, so I'm giving the atmospheric sonics a rest), I thought I'd test my theory with an ultra-simple instrument that simply sends the event table's outputs to a number of numeric readout panel controls. I actually found this simplification really useful: it meant I was able to see the results of my work as numbers, rather than having to interpret the numbers' effects on a sound. The video might also be useful to anyone looking to start processing and controlling events with iteration, value and order modules.
Note: I've been testing Azureus Vuze as a platform for my videos and I've discovered that I don't like it very much. This time, I'm testing a website called Sclipo, which has ropier sound but gives you a handy full-screen feature (right-hand side of the video control panel), looks more like Youtube than Azureus does, and where you can also learn how to play "Roses" by Outkast on piano or electronic keyboard. Sweet mother of the baby Jesus.

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:

Saturday, 31 March 2007

Glitch Sampler Part 9

Making a glitchy pad sample instrument, part 9: filter, effects and having a play

Watch the video

  • (1:35) The samples in this sample map don't have a huge amount of top end, so opening the filter up doesn't produce a huge burst of high harmonics. But use a brighter set of samples and this could change completely.
  • (3:00) This is all down to the resonance of the filter boosting a narrow band of frequencies in the sample. If your filter cutoff is at a frequency where the sample is very loud (for instance if the sample has been EQ'd to boost the mid-range somewhere), the resonance will boost these loud frequencies up even higher and you can get problems with levels. Depends on the quality and content of your samples.