Monday 30 December 2019

Behind the scenes of 'Synthesizerwriter's 29 Bagpipes...'

At the very end of December 2019, my very late (too late!) non-submission for Christian Henson's '29 Bagpipes' competition finally made it onto the Pianobook Library (if you haven't visited this amazing resource for samplists, synthesists and composers yet, then you should!). This blog post aims to augment the accompanying video (included below) with additional notes, to aid anyone who wants more information on how I produced the core samples, and more discussion about the principles behind the RUSS synthesis technique that I used in Ableton Live and Native Instruments Kontakt to make some example sounds using the samples.


1 of 29...



Principles


First of all, the samples that I extracted from the source '29 bagpipes' recording are not very conventional. They are long (about 22 seconds in this case), looped (so that you can choose any start position - controlled by an LFO, velocity or any other controller), in stereo, and they are split into two parts: a harmonic part and an inharmonic part (the harmonic part contains the 'tuned' part of the sound (the bit that you might try to whistle), whilst the inharmonic bit contains all of the noisy, clunky, thumpy, bang. spectral 'rubbish' that gives the sound its character and realism). The intention is that the samples should contain no information about any timbral changes over the duration of the sample - so, although the samples contain varying mixtures of frequencies, these do not change over time in the same way that would occur for the sound that has been sampled. These are raw sound sources, although they are far removed from the rather sterile oscillators that you find in most subtractive synthesisers. I remember that one reviewer of my book on 'Sound Synthesis and Sampling' took great delight in counting exactly how many pages it took me to finally describe what an oscillator actually did - well, part of the reason is that I don't think that enough time is spent on making the raw sound sources as good as they can be... Suffice it to say that these 'samples used as oscillators' are not sterile, boring or static.


The next thing to think about is the split of the raw source material (those 29 bagpipes et al...) into two 'as-orthogonal-as-I-can-make-them' parts. One of the things that always niggled away at me when using samples was the way that the harmonic 'tuned' bit was always 'bound' with the rest of the untuned, inharmonic 'stuff', so if you changed the pitch of the sample, then the pitch of the harmonic part and the inharmonic part both changed. Now in a real instrument, if you change the pitch of a note that it is producing, then the size of the instrument, its resonances, its rattles, its clunks and bangs, do not necessarily change in pitch in the same way. So I always wanted to be able to work with the harmonic part and the inharmonic part of a sample separately - and this is what I have been researching and working on for many, many years. There's a YouTube video where someone enquires in the comments about whatever happened to me (since I'm not as visible reviewing synthesizers as I was 25 years ago), and so now you know the answer - I've been working on fundamentally changing the way that sound synthesis works. Nothing major...


When you have separate samples for the harmonic and inharmonic part, then all sorts of interesting things open up. A lot of the characteristic timbre-defining 'attack' stage of percussive instruments turns out to be mostly inharmonics, and just making changes to that part can radically change your perception of the sound. Long releases on inharmonics parts sound can sound very much like reverb, but reverb that isn't bogged down in lots of pitched 'mush'. Swapping the inharmonics from one instrument to another doesn't give a simple mixture of the two instruments as you might imagine it would - instead it is more like hearing an unusual and distant relative from the same musical instrument family of the source of the inharmonic part. And that's the disarming bit - it seems that whilst our ears love the pitched part for intelligent, clever things like tunes and melodies, the deeply interesting, satisfying, 'characterful', visceral stuff is actually in those noisy, clangorous, nasty inharmonics.

Extraction


There's a lot of fine detail in taking 51-ish seconds of 29 bagpipes tuning up and turning it into looped stereo samples, and a lot of it is boring, repetitive work - there aren't many tools in this space yet!

The first thing I do is listen to the raw source material:


Audacity is my audio editor of choice, although I have been looking at Serato Studio as a 'next level up' way of assembling beats... From the looks (and sound) of this 51.1 seconds-worth, there's a pretty constant level, and a lot of interesting content: bagpipes, singing and various other background ephemera. The spectrum next:


So the loudest component is at -25 dB and is at 240 Hz - A#3, so that's going to be my first target frequency (although I might try some others...). I tend to scan across the frequency axis, looking for any peaks at multiples of the dominant peak, and there seem to be some candidates. Most notably though, is all of that broad-band noise at just under -48 dB, which looks like it is going to provide lots of inharmonics. If this was a sample of an electric piano tine, then it would look very different, with lots more easily identifiable harmonic components, and a lower 'noise' floor. But Christian deliberately provided challenging source material, so none of this is unexpected!

My current preference is to split the harmonic and inharmonic content into stereo pairs by using two different frequencies for the separation filters. A fixed difference of one hertz seems to give good results, although I've also tried halving the frequency difference per octave up the frequency axis. Because the numbers are easier with fixed differences, then that's what I used here - I will make a spreadsheet to automate the calculations when I have time (and post-Thanksgiving and 'post-'End-of-Year' offers are a big distraction at the moment...)

The extracted harmonic content looks interesting:


This is quite typical for extracted harmonic content. Notice that the dynamic range is higher than the source material, and that a lot of the high frequencies are removed by the low pass filter.

The spectrum reveals more detail:


The harmonics are now much more visible, and the 'noise' floor has dropped by about 20dB, which gives a usable margin, although a bit more time cleaning up the sample would be needed to get to the standards of Spitfire Audio, of course. But this is only a quick example to see what can be extracted from deliberately difficult material, so usable is fine. In many cases, I actually prefer the sound of 'less processed' samples - doing too many passes of separation filtering can start to sound artificial.

Repeating for the lower frequency and combining gives the stereo pair:


The variation in the two channels is not unusual when doing separation! If you listen to just the raw looped samples (which are effectively the first 20 seconds or so of this) then you get lots of interesting stereo imaging and lots of harmonic movement (dynamic timbral changes) - not at all like listening to a conventional sawtooth waveform! The long length of the separated samples is to enable lots of variation of sample start position (via round-robin, velocity, controller...) and is one of the bits of sampling technology that rarely seems to make it into synthesis (except here, as a counter example!). I'm that most dangerous type of samplists and synthesists: an impurist who will use any technique to get good sounds!

The extracted inharmonics are also interesting, but for very different reasons. You can hear some of the singing much more clearly for example. Some samples that I have processed reveal 'noises off' that weren't caught during recording...


Unlike the harmonic content, the inharmonic has less dynamic range, and since all of those high frequencies are not filtered out, it looks a lot like the original source material. But the sound is very different - there is some leakage of harmonic material (no processing is perfect!), but the majority is all of the 'other' stuff that was going on during the recording: singing, tuning up, extraneous sounds, etc.

The stereo pair is revealing:


The combination of lots of broad-band noise plus no filtering of high frequencies gives two apparently similar channels, although if you listen there are some differences. I have experimented with using broader difference frequencies, and different Q factors on the filtering, but I haven't reached any firm conclusions on the best approach yet...

Synthesis...

Using two pairs of looped stereo samples is going to soak up computing resources - sorry! As a partial mitigation, there are only a few samples across the keyboard:


This screenshot is from Ableton Live's Instrument Rack, where I'm using multiple instances of Sampler to play back the samples. The samples are in pairs (harmonics and inharmonics) and there are only four ranges. Remember though, that the looped samples are solely a source of frequencies, and any timbral or volume variation is solely provided by 'synthesis' processing, so a lot of the clues that you get from timing of decays or attacks (or detuning) in normal sample playback are not present. RUSS synthesis is very much a mixture of sampling AND synthesis!

A quick word on inharmonics... I have always wondered why subtractive (and other) synthesizers typically give you several choices of oscillator waveform, but only one (white) or maybe a second (pink) choice for 'noise'? There are lots of other sources of inharmonic 'noise' that could be used (hey, even a ring modulator would be better than nothing!), but what tends to be provided is broad-band noise. Yes, you can do quite a lot with that noise by processing it, but, no, there's lots more to inharmonic noises than just broad-spectrum hiss. Now you may be asking: like what? The answer to which is: separated inharmonic sounds. There's a reason why I've been dissatisfied with conventional synthesis noise provision, and if you are reading this, then you are seeing part of the answer. Maybe at some stage I will release a set of inharmonic samples that are completely useless for conventional tuned sounds, but which are very useful in combination with tuned sounds...

Content tips and hints...


The example Kontakt instruments have 'Vel' as part of the name when they have velocity sensitivity built-in. I'm one of those unusual people who likes extreme levels of velocity-driven variation in sounds, and so the sounds that I make tend to incorporate velocity sensitivity. But this may be unusual, as Paul Ward intimated to me at the 2019 Synthfest UK in Sheffield (thoroughly recommended, btw!), and so if you are a 'Controller-mapper' person, then you may want to avoid the Multis with 'Vel' in the name.

Yes, I can spell 'Kontakt', although the autocorrection 'feature' in various layers between me and the Squarespace web-site for Pianobook seems to think it is spelled 'Contact'!

The Ableton Live Instrument Rack instruments didn't make it into the Pianobook Library zip file, but I will try to get an update that includes them. There's just not enough time!

And finally, some thoughts on what you can do with the inharmonic samples. First, some simple things to try.
1. Use inharmonic samples with fast attacks and decays to form the 'Attack' phase of a sound (as popularised by Roland's D-50 synth...).
2. Use the same envelopes for the harmonics and inharmonics, and then alter the keyboard scaling/tracking of the inharmonics so that it doesn't track at all (0% - and this is one reason why Kontakt lets you do this!) through to 100% or more. At zero percent you get an instrument whose size feels strange, whilst as you move towards 100% you get variations of realism. Filtering the inharmonics (or mapping them to velocity) can give some very metallic sounds.
3. Use slow envelopes for the harmonics, and slower envelopes for the inharmonics, and play with the scaling/tracking of the inharmonics (or even reverse them). Band-pass filtering can be good for placing the apparent resonances of the virtual instrument that you are synthesizing.
4. You CAN detune the inharmonics - they don't care! 5ths, 9ths or even totally out-of-tune (or inverted) are all acceptable. Your ears will hear the harmonics as the 'tuned' part, and will assume that everything else is just an integral part of the sound that the instrument makes whilst being played in that acoustic environment. Your entire life has probably been spent listening to sounds where the harmonics and inharmonics are tightly linked together, so you are exceptionally well trained in assuming that this is the case, even when you hear sounds where it isn't a valid model for how the sound has been constructed.
5. You can take the inharmonics from one sample, and play them with the harmonics from another sample. So you could take the high samples and use them in the low register and vice-versa. More broadly, I have some inharmonics taken from a 'classic' monosynth, and they contain some of the distortion, noise, intermodulation, mains hum, hiss and other artefacts that give that monosynth it's particular sound. Add them to another harmonic sample and you get a strange combination of the two 'characters'... Hmm, that's me talking myself into releasing inharmonic samples again...


If you find my writing helpful, informative or entertaining, then please consider visiting this link:




Monday 2 December 2019

Free random velocity repeated notes without using MaxForLive!

In the run up to Christmas, I have been known to release something seasonal, and this has usually been in MaxForLive... This year, in a break from that tradition, I'm releasing something that any Ableton Live user can use! Now I have done non-MaxForLive things before (the Quick Arranger 01 Rack was popular and is still downloadable), so until I gather them together and do a 'recap summary' like I did ages ago for my audio effects, then they will remain in that special 'He doesn't do these very often...' bubble universe reserved for such rarities.

I've allowed myself to break my naming rules, since this is NOT a MaxForLive device, and so I proudly present:

Random Velocity Repeater (RVR) - a MIDI Effect rack for Ableton Live

The left-hand 'control panel' part of the RVR rack...

The Random Velocity Repeater Rack for Ableton Live is built from a MIDI Rack and two standard 'factory' MIDI effects, and so should work in any of the intro/standard/suite variants of Ableton Live 10 (I haven't tested it in Live 9...). It has four channels (red, yellow, green, and blue), each of which processes a single specific MIDI note number. It uses the 'Velocity' MIDI Effect to produce random MIDI Velocities for notes, and the 'Apreggiator' MIDI Effect to repeat notes. Any note events that are processed will have their MIDI velocity values changed, maybe even to zero (and thus turning the MIDI message into a Note Off equivalent) - this is because of two vitally important considerations:

1. My rule of thumb has long been: never repeat a note with the same length, velocity...
2. Random velocities sound cool on repeated notes!
3. Sometimes missing notes are good too! (As well as the third point in a list of two!)

To save you the effort of producing your own RVR Rack, it will be available to download from the Interweb. It will not be available from MaxForLive.com, much as I wish it was possible - and I'm not going to make a MaxForLive version - one of my other rules is that I don't normally make MaxForLive devices that are relatively straight-forward to produce using keyboard shortcuts or standard devices in Racks, unless there's a reasonably good excuse for doing it: simpler UI, less mouse clicks and various other justifications are all acceptable.

As always, in this blog post I'm going to try to provide some basic background information of how my software works. You can now skip to the 'Using it' and then the 'Download' sections if you don't want to grow your own version!

There is also now a YouTube video, which contains several audio examples.

Making it

If you haven't ventured into making Audio (Effects), Instrument, or MIDI Racks, then you may need to read the Ableton Manual first before proceeding, because not everything is obvious. The first thing to do is to create the 'splitter' that extracts out the four notes that will be processed using four separate channels, and a fifth 'Thru' channel that does nothing. To create the first processing channel you drag the 'Arpeggiator' MIDI Effect from the 'MIDI Effects' category in the Browser on the left hand side of Ableton's screen into the gap on the right after the bit that says 'Drag MIDI Effects Here'. (I said it was best to read the manual!) Then drag the 'Velocity' MIDI Effect to the right of it. Then go to the 'Key' view and set the upper and lower limits to a single note by dragging the left and right sides of the green bar left or right as appropriate. Then name the channel - I called it 'Note 1' because it is the first note processing channel. Then 'Duplicate' it three times, using the pop-up menu, and rename them to Note 2, Note 3, and Note 4. Finally, drag and drop the 'Pitch' MIDI Effect, and name it 'Thru' - making sure that for this fifth 'Thru' channel you set the key range to everything - drag the ends of the bar all the way to the left and right so the bar is right across the whole MIDI note number range.

The left hand 'Macro' control panel, plus the 'Drop MIDI Effects Here' middle bit, and the start of the right-hand 'Key' mapping panel...
The four duplicated copies of the Arpeggiator and Velocity channels, which are called Note 1-4, will all be mapped to the same note number, so you need to change them to four different notes (and this is a good time to think about a good colour scheme - mine is a bit rainbow-like...

What the key mapping panel should look approximately like for typical drum note numbers...
The graphics in the key mapping panel are quite small, so here's a close-up of the important bit where the four channels are mapped to four drum notes (shown as red on the keyboard):

When MIDI notes are received by the MIDI Effect rack, the keyboard highlights the appropriate keys on the keyboard graphic in red. Here, three notes (36, 37 and 42) are highlighted, and 38 is not. The 'bar for the Note 1-4 channels should only be 1 note wide, as shown here.
All you need to do is set the narrow bars so that they are underneath the note numbers which correspond to the drum sounds that you want to process. I set the four channels to MIDI note numbers in this way:

42 Closed Hi-Hat
38 Snare
37 Rim shot
36 Kick drum


The velocities of the drums in this pattern clip are not very imaginative! (But remember that they will be randomised...)

The settings of the Arpeggiator and Velocity MIDI Effects are shown here:


The Arpeggiator MIDI Effect is set so that itjust repeats the incoming note several times at a particular rate. The number of repeats and how quickly they repeat can both be set. You can see two small green dots on each of the rotary controls that indicates that I have already mapped these rotary controls to the Macro Controls in the left-hand control panel. To do this, you need to go into 'Map' mode by pressing the 'Map' button (various bits of the UI will go green-tinged at this point) and selecting the appropriate Macro rotary control and the control that you want to map to it. Full details are in the manual! You need to do this mapping process twice for each of the channels: once for the 'Repeats' control, and once for the 'Rate' control, making 8 mappings in total.

The Velocity MIDI Effect does quite a lot of processing of the incoming MIDI. The 'Random' rotary control is set to maximum (64) and the 'Out Hi' rotary control is set to its middle position (63) so that the output velocities will hit the maximum of 127 and all the input velocities will be scaled so that they contribute half their value to the output. So half of the output velocity will be the input, whilst the other half will be random. The 'Out Low' rotary control is set to 0 so that it can produce Note Off messages - you will need to click on the number below the rotary control to change it from the default value of 1. Finally, the 'Lowest' number box can be changed to 0 if you wish. This changes the probabiliity of the output notes slightly - as you can see in the screenshots, I didn't do this, but if you wish to make your own custom version... You could also customise the 'Comp' compression setting as well if you want to compress or expand the dynamic range of the MIDI velocities.

For the 'Thru' channel, you don't need to do anything, and the Thru channel will do that as well!

Using it


Here's the MIDI Effect Rack expanded out to show everything, then the Drum Instrument that makes the drum sounds. In normal use, you would probably only have the left hand 'Control Panel' section of the MIDI Effect rack visible - so just the Macro Controls would be visible:


After the Drum Instrument, you can add any Audio Effects that you want. I used a Reverb Effect. But before the Reverb I added a Limiter, because lots of repeated notes played quickly can be louder than a single instance of the note!

Here's a Limiter Effect before the Reverb
For each note number channel, you need to set a Clip Envelope and map that to the appropriate Macro Control in the left-hand control panel. If you haven't done this before, then you should read the Ableton Live manual because I'm not going to give full and complete details of every mouse-click... 

For Note 1, the Kick drum, the repeats are mapped to a clip envelope that rises from 1 to 8...

This is what the clip envelope looks like... The clip envelope starts at 1 on the left, and rises to 8 on the right hand side.
This means that at the start of the bar, the first Kick drum will be repeated once, the second kick will be repeated twice, the third 4 times and the fourth 6 times. The rate at which the repeats happen is set by the 'Synced Rate' rotary Macro control, which is set to 1/128th note. This is very fast repetition, and turns the Kick drum sounds to  sound more like a pitched note. ( - this is a form of sound synthesis called FOF, and you might be interested in looking up what it means and how it works...)

A slightly more conventional use would be to have a slower repeat rate, and this gives drum sounds where you can actually hear the individual repeats! Here's an example using a Rim Shot drum sound:

The Rim Shot drum sound used with Repeats plus variable Rate - it sounds quite a lot like a Guiro at times...
The clip envelope selection doesn't number the 'Repeat' or 'Rate' parameters, so you have to go by the position: top is Red (1), then Yellow (2), then Green (3), then Blue (4).  This clip envelope is for the Rate at which the notes are repeated.
The Rate starts out slow, speeds up in the middle of the bar, and then slows down again. Unfortunately, I didn't invert the Rate mapping, so faster speeds of repeat are at the bottom, and slower are as you move upwards. You could make your home-grown version do it correctly, of course!

Tints and Hips

Also known as Hints and Tips, but it probably got your attention!

SPARING Ok, so there are four channels to play with, and they are colour-coded in bright colours - this does not mean that you need to use all four channels every time! Sometimes just a single note in a single bar is all you need, or a single note repeated for every chorus. And yes, there are some genres of music where repeating it several times every bar is currently fashionable. But all four channels, all the time, is probably over-kill and may make your music sound ever-so-slightly cliched. 

SUBTLE Clip envelopes can wazz parameters from min to max very quickly, and then wang them back again just as fast. This does not mean that huge variations in the number of repeats, or the rate of those repeats, will sound better - sometimes less is more. Having said that, completely 'way-over-the-top' rate and repeat settings with a Rim Shot sound can occasionally sound just like a Guiro! 

CONFIDENCE Once you have tweaked the Repeats and adjusted the descent of the Rate control so that the Kick drum sounds like an 'FOF' cross between a drum and a monosynth, then you might be tempted to try and hide it deep in the mix. Based on what I hear these days from 'popular beat combos', then you may as well just have the confidence to put your carefully honed special sound effect loud, front and centre. 

CONFLICT When two or more tips contradict each other, as in SPARING, SUBTLE and CONFIDENCE, then just do whatever you want. If you have the Spinal Tap extension fitted to your DAW, then simply turn up all the controls to 11.  

REPETITION I mentioned it earlier, and it bears repeating: Fast repetitions of the same drum sound (particularly if your drum sounds are polyphonic) can be louder than a single instance of the same sound. A Limiter might be useful to keep things under control...

YouTube video!

I have struggled putting videos into blog pages successfully, so I'm going to turn all of this blog post into a YouTube video, so that you will be able to see these happening in a full audio-visual experience!

Getting the Random Velocity Repeater Rack

You can get the Random Velocity Repeater Rack here:

       https://drive.google.com/file/d/1H6U6k2FVQy_n5gekCm5prVwsp488done/view?usp=sharing

You just need to drop the .adg file onto Live's screen and it should appear in the MIDI Effects folder.

Modular Equivalents

In terms of basic modular equivalents, then the Random Velocity Repeater Rack would probably require four Random Noise Generators plus a quad MIDI Utility module to do the velocity multiplying, plus 4 LFOs to do the repeats, and a final quad MIDI Utility to create the repeated notes, giving a total of about 10 ME (without all the stored memories, of course).

If you find my writing helpful, informative or entertaining, then please consider visiting this link: