Showing posts with label Oscillator Bank. Show all posts
Showing posts with label Oscillator Bank. Show all posts

Tuesday, 14 August 2018

A Bank of Max For Live Oscillators - revisited

When I created BankOSCmr0v01, I thought that it was quite a neat, simple multi-oscillator sound generator, and so I released it into the wild...

After a bug report, followed by careful investigations by myself, Ableton and Cycling'74, it looks like  we could not reliably generate the problem, and so I went back to playing with it and seeing where this took me - which is where it started to get really interesting...

The problem with large numbers of oscillators is always one of control. Additive synthesis suffers from this because there are lots of harmonics that you need to control. BankOSCmr has 32 oscillators, and so suffers from similar problems, although I was determined not to do a traditional 'separate envelope for each oscillator' and I was equally focussed on not going anywhere near the standard FFT-based 'draw a response' approach either - the beauty of having 32 separate oscillators with a few Hertz resolution across the audio band is that you have a very different audio palette to FFT-based generators. (Plus I have already done a couple of those!)

BankOSCmr0v03f



So I played around with logical extensions of what I already had, and this rapidly expanded into the control method that is in BankOSC0v03f. The main new additions are the Freq and Volume 'damping' controls, and these affect the way that the density of the oscillator frequencies and volumes are affected by the scanning across the oscillators. Low values of damping create thick clusters of frequencies, whilst high values of damping give more open, thin whips of frequencies. I also added a timed 'Update' function, which resets the frequencies and volumes of the oscillators to random values, just to add a bit of variety in how the oscillators can be controlled. You can also click on the 'New' (at the top of the Van De Graaf) to force a new set of random values for the oscillators.

And it was great fun. The additions allow a lot more control over the sound pallete that BankOSCmr could create, and widened the possible sounds as well. In fact, it felt like you could almost use it for performance as it was, and so I put it through 3rd hand, the automatic volume fader, and just played around for 12 minutes or so, capturing it on video.

The result is available on YouTube.

The (Updated) video demo of BankOSCmr0v03f was recorded live, and the only effect is Zynaptiq's superb free SubSpace plug-in to add a bit of spatial variety (If I could afford it, then I would be using their astonishingly wonderful Adaptiverb instead, which I fell in love with at NAMM, and which comes incredibly highly recommended by me!). 3rd Hand is just an automatic volume control. In more skilled hands than mine, then the demo would be better, and there's a few warts in the audio (this is version 0v03 remember!), but this was my first time putting everything together of a live video demo... and now I have added better text commentary...
So what's going on in the demo? Well, the Update time is set to just under 15 seconds, so there's a bit of timed underpinning in the background for much of the time, although I do turn it off, and then back on again, just to show how this is simple to do. Then I just explore the various controls. High and Low set the range of frequencies generated by the 32 oscillators, whilst the Time sets how long it takes for each oscillator to change frequency, so you can go from very quick jumps, to very slow glides. Freq and Volume control the damping, and the Run control sets how quickly the scan runs across the oscillators. Fill has two functions: above 0.1s it just generates ramp functions, whilst below that it generates random values. The ramps allow the generation of some very cool Shepard tones, as you can hear in the middle part of the demo. The random values can give some astonishing bell-like timbres, again in the middle of the demo. At the end, I break with convention, and keep altering things as the fade out progresses. One of my more commercial songs introduced a blistering lead solo just after half way through the final fade, just so that anyone who was listening got the feeling that there was more - kind of the reverse of Roxy Music's intro to Virginia Plain (Sound of lots of people looking this up on iTunes and Spotify...).

What intrigues me is that there are lots of videos on the Interweb that show people playing Modular synths live and 'DAW-less', whilst I haven't been able to find very many that show an Ableton Live plug-in being played live, sans any sequencing or pre-recorded backing. Well, now there is one. Enjoy!

Getting BankOSCmr0v03f

You can download BankOSCmr0v03f for free from MaxForLive.com.

Here are the instructions for what to do with the .amxd file that you download from MaxforLive.com:

     https://synthesizerwriter.blogspot.co.uk/2017/12/where-do-i-put-downloaded-amxd.html

(In Live 10, you can also just double-click on the .amxd file, but this puts the device in the same folder as all of the factory devices...)

Adaptiverb...

Adaptiverb is incredibly highly recommended, and comes from Zynaptiq.

Modular Equivalents

In terms of modular equivalents, then reproducing this functionality in my modulars either involved 32 VCOs and four 8-step sequencers, or advanced oscillators banks or sequencers that I can't count as 'basic' modules, so I would rate this version as being about 46 ME (or 12ME if bank oscillators are allowed, or 8ME with fancy sequencers!).


Buy me a coffeeBuy me a coffee




Thursday, 5 July 2018

My first visit to a Bank of Oscillators...

I have always been fascinated by sound generators. Over the years, I have done a lot of dabbling into FM, AM, Ring Modulation, Granular, FFTs and many other techniques, and what I have found is that the interesting stuff is often in the detail. So my previous forays into Reaktor produced large numbers of generators exploring lots of ideas, and I sometimes reach back into that abandoned era to provide inspiration for MaxForLive devices. This brings me to my latest sound generator, whose name tells you just about everything about it: BankOSCmr0v01.

A Bank of Oscillators...

Any sound generation method that uses large numbers of oscillators has a basic problem that can be boiled down into a simple question: How do you control all of those oscillators?' Additive synthesis is a good example: lots of harmonics means lots of things to control, and creating a powerful and appropriate 'high-level' user interface can be a difficult challenge. But my current research interest is in inharmonics, and so I wanted to explore ways of working with non-harmonically related frequencies.

After poking around in some of the quieter parts of the Max object world, I found ioscbank~, and decided that this might be suitably inspiring. The Max documentation showed filling the paired frequency and amplitude controls with random values, but I like my sound generators to produce dynamic evolving sounds, not boring static timbres. So I added scanning that swept across the bank of oscillators, gradually changing the frequency and amplitude of each oscillator, and slugged the interpolation of these parameters so that they changed slowly - and I got an interesting 'big bank of oscillator' sound that had a lot of promise.

One of the techniques that I learned when creating synth patches was to explore the extremes of the available parameters, and so I experimented with the rate that updates happened, with the interpolation time, and with the range of frequencies and amplitudes. Messing about with the amplitudes did not seem very interesting, and so I abandoned that and moved to the other parameters. (Anyone who is shaking their head at this point needs to move to the follow-up article to this one, where I realise that I nearly missed something big and went back to controlling the amplitude.) After adding some filtering and some additional tweaks, I had an interesting result that could make a quite broad range of not-so-ordinary sounds: BankOSCmr0V01.



BankOSCmr0v01's user interface is dominated by the large display in the centre, and this is not interactive at all. It is purely to show you what is going on for each of the 32 sine-wave oscillators that this version uses. The display shows the 32 oscillators from left to right, and each vertical shows the frequency as an orange square and associated bar underneath, and shows the amplitude (the volume...) as a purple square and associated bar underneath. Low frequencies and amplitudes are at the bottom, and high frequencies and amplitudes are at the top.

To control the oscillators, the controls on the left affect:
- the Rate at which the update sweeps across the oscillators from left to right
- the High and Low extremes of the frequencies of the oscillators
- the Time for the frequencies and amplitudes to change to the new values from the scanning
- a 'New' button to generate a new set of random values for frequency and amplitude (If you send a MIDI note to this device when the Rate is set to the slowest time (...all the way clock-wise: 'Run' changes to 'Stop'), then this triggers the 'New' button.)

On the right, there is a simple state-variable filter that provides low-pass, high-pass, band-pass and notch transfer functions, and has Frequency and Q controls, an finally an Output control that has a deliberately large range to partially compensate for having no controls over oscillator amplitude (and I should add a second hint about the next version here as well).

And that was that. A simple bank oscillator that generates a range of sounds using a small number of controls. Nothing particularly special so far, but then there's more coming up next time... and plans beyond that as well.

Media

Several people have asked me why I never post videos of my MaxForLive devices on YouTube, and I never had a really good reason why not, so I'm posting a simple video to my YouTube channel, which is really going to surprise my 34 subscribers! I will also do my usual SoundCloud example as well.

Getting BankOSCmr0v01

You can download BankOSCmr0v01 for free from MaxForLive.com.

The YouTube video.

The SoundCloud demo.

Here are the instructions for what to do with the .amxd file that you download from MaxforLive.com:

https://synthesizerwriter.blogspot.co.uk/2017/12/where-do-i-put-downloaded-amxd.html

Modular Equivalents

In terms of modular equivalents, then reproducing this functionality in my modulars either involved 32 VCOs and four 8-step sequencers, or advanced oscillators banks or sequencers that I can't count as 'basic' modules, so I would rate this version as being about 40 ME (or 10ME if bank oscillators are allowed, or 6ME with fancy sequencers!).



Buy me a coffeeBuy me a coffee