Wednesday, 31 October 2018

Quick Transpose Special Edition - an extended MaxForLive device

One of the interesting bits of feedback that I got for the original 'Quick Transpose' was a request by someone with the MaxForLive.com user-name of 'brucewayne247' for some additional controls: single steps and user-presettable. My initial thought was that this was gong to be a quick and easy edit, but the reality turned out to be slightly trickier... So here's a 'behind the scenes' special post.

The original device, 'Quick Transpose', has gone through two quick updates recently (0v02 - to update the user interface, and 0v03 - to fix a minor user interface weakness), It has only two columns of buttons: Octave transpositions on the left, and Fifths on the right. There is a small grey box (with a '=') in the lower right hand corner shows the total transposition from the two columns, and the 'ANO!' button is a panic button that sends 'Notes Off' messages for any held notes in case any held notes occur. Despite the name, it doesn't send a MIDI 'All Notes Off' message!

The Extras 

My first thought was to just add a third column of buttons, but instead of fifths, to provide a user-controllable input. The fourth set of buttons would just be semitone steps and could use the same live.tab buttons as all the previous columns. Finally, I had an idea for something that I hadn't seen before: an up/down counter that would control the transposition interval. Here's what the user interface looks like, taking all of the elements into account:


And here's an overview of the Max code that does all the 'under the covers' work to make the user interface actually do things:


The code for each of those columns is in the centre of the screenshot. From left to right, the boxes show the code for each of the columns. The leftmost column does the octaves, the next column does the fifths, and underneath them are the objects that cascade their outputs to give the final transposition value. The first of the new added columns is the large box in the middle - and it is very different from the two previous columns - getting user-settable buttons wasn't s easy to do as I had expected. The next column is the semitone selector, and the difficulty here was fitting it onto the screen - a single vertical column would have had buttons so tiny that they wouldn't have been readable. Instead, I decided to do two columns next to each other with 12 to 7 on the left side, and 6 to 1 on the right side, with two zeroes in the middle. Unfortunately, this order doesn't translate very easily to the way that the buttons ae ordered, and it took some experimentation to get the right order. The final box is the 'counter' column, and you can see the up and down buttons at the top, then the counter, and finally, the 'count' display at the lower right. 

So the three new columns weren't just repeats of the original two, they were all very different, and so what seemed like a quick programming task became something slightly more time-consuming. But eventually it was completed, and I had something that did everything that 'brucewayne247' had requested, plus that extra 'counter' just as a wild extra.

So what is it? It's a completely over-the-top transposer, with many ways to transpose, including a counter mode that you may well have never seen before and will very likely never see again. Like many of my devices, it is a bit of an experiment (Probably LFO and LFOLFO are good examples). Enjoy!

Obfuscation - a brief aside

'Obfuscation' is a wonderful word. It means to hide something: the process of making it 'obscure'. In the past I have seen MaxForLive devices which covered everything behind panels, devices which partitioned code into many sections, devices with nested patchers, and more. But recently, I saw a different approach: taking a patch, selecting everything and then expanding everything. As a result, undoing it will probably take quite a bit of time and effort. Simple and reasonably effective.  

Using Quick Transpose BW

'Quick_Transpose_BW_mr' can be used whenever you want to make quick transpositiions in Ableton Live using the mouse. Any of the transpositions can be selected with a single mouse click. I tend to use this type of device inside Instrument Racks when I'm making custom instruments:


The screenshot shows Quick Transpose BW being used inside an Instrument Rack to do rapid octave switching controlled by the Rack Macro Controls - although you could also assign other Macro Controls to the other columns. The 'Pitch' device is the standard Ableton device, and is shown here for comparison purposes.

Getting Quick_Transpose_BW_mr_0v02

You can download Quick_Transpose_BW_mr_0v02 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...)

Modular Equivalents

In terms of modular equivalents, then reproducing this functionality in my modulars was harder than I thought it would be. I settled on a step sequencer and a manual clock and ended up at about 3 or 4 ME. One of the interesting things about modulars is that the mundane labour-saving modules are often the hardest to find, and I end up designing my own, and then end up with something very custom and personalised - which is what my Ableton Live looks like too...

Alternatives

Yep, you can use the factory device from Ableton: 'Pitch', to do exactly the same function. But it requires setting the focus to the rotary pitch control (with a click on the control) and then using 'shift-up arrow' to jump in octave steps. Or you can type in '12'. As I say, my preference is to do just about everything using the mouse, not the keyboard, and for me, continually jumping back and forth between mouse and keyboard is a big switch in context each time. Your preferences may differ, of course.

(You could also use the 'Transpose' box in the 'Scale' device - the 'shift-up arrow' shortcut works there as well.)

Buy me a coffeeBuy me a coffee


Saturday, 27 October 2018

Flamming, Fluttering and just plain echoes...

Lots of other people have already noted the 'slightly less immediately obvious' devices inside the Ableton Live 'Max For Live Essentials' pack (for Live9!), but there is often an interesting alternative angle, and that's where I come in. In particular, Note Echo caught my eye, because it is a MIDI-domain echo, and it is programmed in MaxForLive...

Here's what I'm working towards in this post:


But first, some more background... 

Note Echo looks very similar to the long-established, factory default 'Audio Effect' called 'Simple Delay', but instead of processing in the audio domain, it processes the MIDI messages that control the production of the audio itself. So instead of having an Instrument produce a note that then gets echoed, Note Echo gets the Instrument to play several notes, delayed in time. So the echo happens before the audio is produced (which makes me think of the amazing fictional substance called thiotimoline...). 

Sometime during my Live9 to Live 10 updates, I got two versions of Note Echo. (Notice that the two Note Echo devices are MIDI Effects, so they go BEFORE the Instrument, whereas Simple Delay is an Audio Effect, and so goes AFTER the Instrument):


Producing echoes in the MIDI-domain enables some interesting special effects that aren't easy to achieve in the audio domain. The 'Feed Delay' rotary control in Note Echo allows you to control the amount of the incoming note's velocity parameter that is used in the delay section, and if timbre is influenced by velocity, then this means that the echoes that are produced are going to sound different depending on the velocity! In the audio domain, then an echo can merely work with whatever audio it receives at its input, but Note Echo transcends that limitation. I often program lots of velocity sensitivity into my sounds, and so I tried a few of my more extreme DX7 FM sounds that use velocity to make radical changes to the timbre, and these sounded really interesting when driven by Note Echo.

Another advantage of doing delay in the MIDI-domain is that you can control precisely what it is applied to. A few edits (Note Echo is programmed in MaxForLive) later, and I had a stripped down version of Note Echo that only affects a single MIDI note and had the pitch shift removed. After adding an LFO and a control mapper, I had an M4L device that does flutter echoes, but only on a single chosen MIDI note number. Now, you could use a separate track with just a single note on it, and process that using 'Simple Delay', but having a purpose-built device that works on an ordinary track is much quicker and more convenient, and I quite like both of those features!

My grateful thanks go to Ableton and Cycling '74 for Live and Max For Live - having example devices like Note Echo are a great inspiration for further exploration, and the ability to extend/enhance/tweak existing devices is wonderful!

Drum Flammer - as shown up at the top of this post!

What I found my quickly-hacked-together device very good for was producing 'flams', something which I hadn't really used since back in the 1990s, when drum machines first started to have enough polyphony to allow clusters of time-overlapping sounds.  Back then I used to create flams by manually editing MIDI Notes to give notes that rapidly repeated, in a brute-force approximation of the drumming technique where the name 'flam' comes from - which is kind of a cue for some of the flam rudiments...


There's quite a lot going on in that user interface, so here's the same thing split out into the major sections:


As you can see, the left hand side is very similar to the source M4L device, Note Echo. I have added the lower set of electors, which control the range of time change that the LFO can make, plus at the very top, there is the incoming MIDI note number indicator (on the left), then a 'Copy' button, and then the 'Note Selector' (with the blue triangle) that lets you choose which note will be echoed. The 'Copy' button just lets you set the chosen MIDI note number to be the one that is being displayed. So you just play a MIDI controller or keyboard to send the appropriate MIDI Note On message, and then click on the 'Copy' button. (I first used the technique in my MIDIQuantCC controller quantiser... But this was for MIDI Controller numbers, of course!)

The middle section is the LFO. Having produced some wild and totally-over-the-top LFOs recently ( example 1, example 2 ), this one is rather ordinary by comparison. Perhaps the only feature of note is the 'Random' waveform, where I haven't used the traditional Sample-and-Hold waveform, but instead I have used a rate-multiplied piecewise-linear waveform that seems to give good results in this application (and now that I have it done and dusted, I may well use it when I next revisit my other LFOs...).

The right hand side is just the standard parameter mapping controls that I have gradually been adding to my devices. It allows you to use the LFO to control the internals of the device itself, AND to control another parameter somewhere else in Live. This can be very useful for all sorts of interesting and unusual effects.

User Tips

For flams, turn the Offset rotary control (in the middle of the device) almost all the way anti-clockwise ( the shortest times) and set the time buttons on the left to '1'. Use a little bit of LFO Depth to give some movement to the sound, and set the two feedback rotary controls as far clock-wise as you dare. You will find that Drum Flammer can eat up processing power, so you may find that little bar in the upper right hand corner of Ableton Live is higher than you normally see!  

For flutter echoes, then higher values of Offset and the time buttons will suffice. Even slower times will give echoes, but without many of the artefacts that you normally associate with delays. I have to say that Note Echo is a wonderful device, and well worth the processing power that it can consume sometimes - and Drum Flammer is slightly more specialised, but I love the way it can add all sorts of unexpected variability to sounds.

Despite the name, Drum Flammer can also be used for non-drum sounds! There's an example on my SoundCloud pages that very eloquently shows how you can bury an interesting sound in way too much echo... Blame it on my formative years being spent adding too much reverb to synths. 

The best tip is to get familiar with Ableton's 'Note Echo' device first. It can do some very cool effects on its own. Me, I just like to go that little bit further...

Examples

Here are links to two SoundCloud examples of Drum Flammer in action.


Coming Up

Yes, there's a typo in the UI. I will fix it in the next update. 

Getting Drum_Flammer_mr_0v01

You can download Drum_Flammer_mr_0v01 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...)

Modular Equivalents

In terms of modular equivalents, then reproducing this functionality in my modulars just required the sort of MIDI note mapping to 'round-robin' synth 'voices' that is quite widely available, plus a digital delay, an LFO, and the usual Utility modules. Overall, the core is about 4 ME, but that flamming is going to eat up synth voice modules, so you would need to add 1 ME for a simplistic synth voice module per overlapping flam note... At a minimum, that would be 2 extra ME, making 6 ME in total.


Monday, 22 October 2018

Quick Transpose - a free MaxForLive utility device for Ableton Live

I'm doing some tidying up at the moment so that I'm kind of ready for the upgrade to Max 8, and so some of my older MaxForLive devices are getting a fresh lick of paint...

As you probably already know, Ableton Live comes with a 'Pitch' MIDI Effect - it has a minimalistic user interface that provides a rotary control for semitone shifting of incoming MIDI notes... Now I do lots of sound design and synthesis research inside Racks, and so do lots of octave and fifth transpositions - if you have seen me demo my RUSS residuals synthesis technique at NAMM or Synthfest UK then you will have seen me do lots of live transposes as I edit sounds), and so I have spent quite a bit of time clicking on the control and then using the up or down cursor keys to adjust the pitch of a layer. Twelve clicks per octave is a lot of clicks (Using the keyboard: 'Shift and Up arrow' jumps in octave steps, but I prefer using the mouse for just about everything), so I made a utility device that reduced the amount of clicking. My usual approach with controlling things in live performance with a mouse is that the number of mouse clicks should be as few as possible: single clicks if possible...


The original device was called 'Quick Transpose', and it was a simple device with a vaguely seasonal 'late December' colour scheme that didn't fit in with any of Live's skins, and looking at it again now, it definitely doesn't look good with Live 10's 'Dark' theme. Time for an update...


The new update (to 0v03!) adds a bit more explanation (The left hand side is for selecting Octaves, whilst the right hand side is for Fifths...) and tries to make things clearer.


There are two columns of buttons: Octave transpositions on the left, and Fifths on the right. The small grey box (with a '=') in the lower right hand corner shows the total transposition from the two columns, and the 'ANO!' button is a panic button that sends 'Notes Off' messages for any held notes in case any held notes occur (although I have tried to minimise the chances of this happening in the M4L code). Despite the name, it doesn't send an 'All Notes Off' message!



The screenshot above shows the obvious way to use Quick Transpose, and this is probably where most Live users would place it automatically - the last MIDI processing device just before the 'Instrument' in a track chain. (Also notice how my colour theme kind of works in a dark skin...)

But you can put Quick Transpose anywhere in the MIDI part of a track chain, which means that it can go in front of a synthesiser inside an Instrument Rack:



This allows you to quickly transpose one of a set of synthesisers to parallel fifths or octaves with a quick click of the mouse, and you could always put another instance of Quick Transpose in front of the whole Instrument Rack to avoid needing to select notes and shift-octave them in the piano roll view. (The 'Select, Shift-Arrow' octave transposing is another way of transposing the whole sequence, but splitting poly tracks apart into mono tracks is usually a bit fiddly and slow to do.)


Here's the 'Operator' of the three parallel synths in the Instrument Rack, transposed down by one octave.


And finally, the 'Wavetable' transposed up by one octave. I have often wondered about making a device that puts controls deep inside Racks up at the top level, but I'm still learning about the programming model for Live, and I don't think my knowledge is quite up to it yet...

Getting Quick_Transpose_mr_0v03

You can download Quick_Transpose_mr_0v0for 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...)

Modular Equivalents

In terms of modular equivalents, then reproducing this functionality in my modulars was harder than I thought it would be. I settled on a step sequencer and a manual clock and ended up at about 3 or 4 ME. One of the interesting things about modulars is that the mundane labour-saving modules are often the hardest to find, and I end up designing my own, and then end up with something very custom and personalised - which is what my Ableton Live looks like too...

Alternatives

Yep, you can use the factory device from Ableton: 'Pitch', to do exactly the same function. But it requires setting the focus to the rotary pitch control (with a click on the control) and then using 'shift-up arrow' to jump in octave steps. Or you can type in '12'. As I say, my preference is to do just about everything using the mouse, not the keyboard, and for me, continually jumping back and forth between mouse and keyboard is a big switch in context each time. Your preferences may differ, of course.

(You could also use the 'Transpose' box in the 'Scale' device - the 'shift-up arrow' shortcut works there as well.)

Inside a Rack

As I said, when I'm doing sound design and synthesis research, I spend a lot of time inside an Instrument Rack, tweaking synths and sample players and transposing to get the right feels from the layered output. What I've been working on for quite a while is a single device that puts all of that transposing into a single UI, instead of it being spread throughout the layers of the Rack. But I have always wondered if this is too specialised a device for general use... Anyway, it turns out that you can use Macros to do this...



So here's a typical three-layer synth sound, using Analog, Operator and Simpler. I have added a Quick Transpose and a Pitch M4L device in each layer, and mapped Macro Controls to each of them. This undoes the burying of the transposition controls inside the Rack, and presents them at the top level, where they are very easy to get at...

( Of course, in a real-world Rack, only three of the Macros would be assigned to transposition - the other five would be to other parameters! I'm showing the two sets of macro assignments for comparison purposes only. )


As you can see, the 'use Ableton devices' method uses Pitch to do the transpositions, and so the basic mapping gives a range of +/-128 semitones for the Macro rotary control. A quick edit to the Mapping Browser, and this rename can be set to +/-12 semitones (see the screenshot collage below). Unfortunately, Macro rotary controls do not respond to the 'Shift and Up/Down' keyboard shortcuts, and so there's quite a lot of shifted cursor key presses required to transpose by octaves (12 presses per octave).


The 'Quick transpose' method maps the three Quick Transpose devices to the three rotary Macro controls, but this time, the 'live.tab' Max object isn't very well supported in the Mapping Browser - you can't change the range, and can't invert the range. As a result, transpositions downwards require the rotary control to go clockwise, and so high values of the 0-128 value indicate low transpose values. But the live.tab object quantises the values to octaves, and so there are really only five values for the rotary controls that matter: 0-15 maps to +24 semitones (+2 octaves), 15-47 makes to +12 semitones (+1 octave), 48-79 maps to zero (no transposition), 80-111 makes to -12 semitones (-1 octave), and 112-127 maps to -24 semitones (-2 octaves). So selecting one of the five octave transposition settings is very quick if your preference is to use a mouse for most editing in the Live user interface, but transposition is slower if you use the keyboard cursor keys to move up and down one semitone at a time...


You can see the effect of the lack of an 'invert' option in the screenshot above. The 'Ableton Pitch' method gives a rotary Macro Control that goes clockwise for transposing up in pitch, whereas the 'Quick Transpose' method results in a rotary Macro Control that transposes down in pitch for clockwise rotation. But the quantisation makes it easier to set the transposition because there are only five positions for the Macro that is mapped to the 'Quick Transpose' live.tab object - and the lack of a 'Shift-Up/Down' keyboard shortcut makes the 'Pitch' method more fiddly since it requires careful mousing to move the exact multiple of 12 semitones, or requires multiples of 12 ip/down cursor key presses to shift in octaves.



For completeness, the 2 octave view is shown above.

In conclusion, then there are advantages and disadvantages for each method. The 'Use Ableton devices like the Pitch device' method doesn't require an additional M4L device, but suffers from a missing keyboard shortcut and requires lots of key presses or precise mousing. The 'Quick Transpose' method requires an additional M4L device, but has a user interface that is easier and quicker to use with a mouse, but requires huge numbers of cursor key presses. It all depends on your preferred method of interacting with the Live user interface - my preference is for mousing, but I also use the cursor keys for precise control!















Sunday, 14 October 2018

ProbablyR v011 - Updated MaxForLive Probabilistic Sequencer. for Ableton Live

I have just released a new update to my Probably MaxForLive generative, probabilistic sequencer - this is ProbablyR, and it adds a lot of new functionality, although not everything that was requested has yet been added - there are more updates coming.


The above graphic shows a summary of the main changes:

Memory slot grid


(This memory grid is in 'Setup' mode, only four slots have been filled, and there are no white spots because they don't do anything in 'Setup' mode! They just recall the contents of memory slots when in 'Play' mode.)

The memory slot grid now has 16 steps. Previously this only had 8 steps, and so whilst you could store 12 memory slot (the square grey boxes in the 'black' section), you could only control which one was playing using 8 steps. Using the maximum length of 16 steps, and if you select the maximum number of repeats (16), then you have 256 (16x16) bars before the sequence repeats. Having more steps than memory slots means that it is easier to use a couple of memory slots to allow organisation of slots and their contents.


(This memory grid is in 'Play' mode, and there are four filled memory slots (on the right hand side). The Length is set at four, and so steps 1 to 4 will repeat again and again until you stop Live. The four white spots select memory slot 1, then 2, then 3, then 4, and then 1 again. ProbablyR is currently playing step 2...)

The workflow is intended to consist of:
0. When developing a new sequence, use the 'Clear' button in the lower right hand corner of the 'Length' section (it is deliberately kept well away from everything else). This will wipe the contents of the memory slots forever, and they cannot be retrieved. Only do this if you want to start from a clean set of memory slots.
1. Developing memory slots using the 'Setup' mode, and using Shift-Click into slots to store a snapshot of the coloured sections for each major change.
2. Using the 'Play' mode and the memory slot grid to determine the order in which the slots are played back, with the shortest sequence being a length of 1 bar, repeated once, and then starting again (and the longest being 16 bars, repeated 16 times, and then starting again).
3. Jumping back to 'Setup' again to make an edit to a memory slot. (If you don't do this then the recall of the memory slots will keep overwriting your changes! Whenever you find that your grid edits are being overwritten, check that you are not in 'Play' mode!)
4. Using 'Play' mode to play the memory slot grid.

I'm working on ways to make this workflow more intuitive...


Here is a compressed screen shot of that 'memory clear' action (step 0 of the workflow above). Notice the round red button with an 'X' in the lower right hand corner of the Length section, and the red square memory slots on the right of the Memory section. In the memory section, red squares mean 'empty', grey squares mean that the slot has something in it, and a white square is the memory slot that is currently being played.

Remember that the memory slot grid has the same probabilistic control as all the other grids in ProbablyR, so if you have two white spots in a vertical, then they will be chosen on average 50% of the time. If you have three, then 33% each, and so on. You can use just single spots if you want to know exactly what will happen, but using more than one white spot gives you controlled randomness...


So in the above screenshot, the second set of 4 bars is playing the recalled memory slot 2. When the 9th bar starts, the two white spots in the vertical line (one to the right) will select either memory slot 1, or memory slot 3 - with a 50% probability. After another 4 bars, then the two spots in the right-most vertical mean that either the 3rd or the 4th memory slot will be played - again with 50% probability. So there are 4 ways to play the memory slots: 1213, 1214, 1233, or 1234. Because there are two sets of 50% choices, then each of these possible ways will happen about 25% of the time.

Remember that a memory slot contains all of the settings in the coloured sections (except for the step length and the memory reset!). So those 4 ways of playing are actually 16 bars where there could be additional probabilistic operations set...

Order grid

The 'Order' grid controls the order in which steps are played. The default grid is a diagonal line from the lower left corner to the upper right hand corner. You can set this by clicking on the '1' round button on the right of the purple 'Order' section. The steps will then move from left to right, and the sequence plays 'forwards'.

Forwards

The opposite to this is set by clicking on the '-1' round button, and this puts a diagonal line from near  upper left corner to near the lower right corner - the exact positioning depends on the length of the sequence. In the screenshot the length was 16 steps, and so the last two steps in the grid are not used. The sequence now plays backwards.


Backwards

The round button with '4' in it is a special case that sets just every 4th white spot, and is typically used when you are working with a sparse number of notes per bar. The screenshot shows this situation...


'4': every fourth note

There are 5 white spots because the full grid is actually 18 steps in length, and so an extra white spot is required. In the case of 16 or less steps, then the 5th spot is ignored.


Forwards and backwards in the same bar

By setting the order grid so that it goes forwards for part of the bar, and backwards for the rest (16 steps are shown here), then the order of playback of notes will go forwards for part of the bar, and backwards for the remainder of the bar. This type of control over the order of playing of steps is quite unusual in sequencers (software or hardware). 

Order randomisation

Instead of just forwards, backwards, and any combination of those, there is also an experimental randomisation function that allows the order of the steps to be randomised, every bar, every 2 bars, every 3 bars, etc. This only works on the 16-step grid at the moment (the code to produce different random grids is not straight-forward!), but it has two controls: the small square button containing 'N' or 'R', and the small number underneath it, which sets how many bars have to be counted before a new randomisation is generated. When the button shows 'N', then a new randomisation set is produced every so many bars, and when the 'R' is shown, then no new randomisation is generated (so you can leave one in place if you want). The large white number is the bar count.


A random order grid held by the 'R' button setting.


The random grid about to be replaced (the button has just been clicked to change the 'R' to an 'N' ('No randomisation')) - the bar setting is '1', and the bar count is '1', so at the end of this bar, a new random order grid will be produced.

Note repeat

The order grid can also be used as a shortcut way of repeating a note. If you set up the order and pitch grids like this:


...then the dark highlighting that I have added across the order grid is actually a time plot of the note in step 4 that is highlighted by a vertical bar that I have added in the pitch grid. So the second white spot causes the note to be played again. This can be a very quick way to add little extra 'busy' notes to a sequence, and can be combined with the probability controls via multiple vertical spots. There are lots of ways to exploit this to make interesting patterns with many variations.

Step length

Probably the most important change is the step length. Instead of being locked to 16 steps, you can now choose a step length from 9 steps to 18 steps. This equates to time signatures of 4.5/8 to 9/8. If you put a copy of ProbablyR in more than one track inside Live, then you can have different step lengths for each track. Combined with the probability settings , this can be used to create music with very large numbers of variations (and a long time before it repeats the same music).


Here is the length box, with the length control set to 16. The range of the control is from 9 to 18 steps.

Note that the length control is NOT stored in the memory slots. Experimentation with the beta versions showed that this was not a good idea because it caused nothing but confusion.

That completes this update report for ProbablyR. At some stage, I will gather all the material in these blogs posts on Probably and edit it into the user manual...

Tutorials and further information

The 'Probably' sequencer is a complex plug-in with an unusual user interface. The following online resources are recommended until I produce a full user manual:

http://synthesizerwriter.blogspot.co.uk/2017/07/probably-antidote-to-step-sequencers.html

http://synthesizerwriter.blogspot.co.uk/2017/09/probablyz-tutorial.html

https://soundcloud.com/martinruss/probablyz-tutorial-demo-01

http://blog.synthesizerwriter.com/2017/10/probablys-tutorial-using-newly-added.html

Video Demonstration

Here is a YouTube video that shows how to use ProbablyR.


Getting ProbablyR_mr_v011

You can download ProbablyR_mr_0v11 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...)

Modular Equivalents

In terms of modular equivalents, then reproducing this functionality in my modulars looked like it would require several sets of four 8-step sequencers (plus additional logic modules), or it would require the use of advanced sequencers that I can't count as 'basic' modules, so I would rate this version as being about 140 ME. This is not something that I would want to make for real in a modular.











Tuesday, 9 October 2018

Residuals Using Simple Separation - Seminar at Synthfest UK 2018

On Saturday the 6th of October, 2018, at 2:45, I presented a seminar about my method of using residual samples to do sound synthesis at the 2018 Synthfest UK event.


The title of the seminar was 'Sound Synthesis Using Residuals', and it described some research that I have been doing.



I promised to make the Nyquist filters for the Audacity audio editor available, and here is the link:

Filters for Audacity

The two filters look like this:


The 'Harmonic Extractor' filter outputs only the harmonics of the input, if the frequency of the narrow peaks matches the pitch of the input.

The 'Harmonic Rejector' outputs everything except the harmonics of the input (the 'inharmonics'), if the frequency of the deep notches matches the pitch of the input.

The shapes of these filters are not your ordinary synthesiser staples like low-pass filters. The shape of the harmonic extraction filter is sometimes called a 'teeth' or 'tooth' filter, whilst the harmonic rejection filter is often called a 'comb' filter.

Harmonics and frequencies are related in a not-quite-straightorward way. The pitch frequency is called the Fundamental, and is often represented by the symbol 'f' (for frequency). The first harmonic is at twice the frequency of the fundamental (2f), the second harmonic is at three times the fundamental (3f), and so on until your ears run out of range, or a digital representation of the audio gets close to half of the sampling rate and starts to be filtered out to avoid aliasing. Usually, all you need to know is that you add one to the harmonic to know what multiple of the fundamental frequency it is. So if the fundamental is 100Hz (f), then the 1st harmonic is at 200Hz (2f), the 2nd harmonic is at 300Hz (3f), and so on.  

What these filters do is to align the peaks or notches so that they match the harmonics of the input sound, and they then either extract or reject the harmonics in that sound. (This process is not perfect, of course...)

The RUSS synthesis technique uses these two filters to extract the harmonic part, and the inharmonic part, of the input sample. Once you have these two parts (called residuals), then you can use conventional S&S synthesis to create sounds using them as raw material. Separating the sample into two residuals lets you do all sorts of interesting edits...

More information on the RUSS synthesis technique can be found here.