New Tool: Progressor

I’ve just uploaded new script that matches chords progression to a lead using algorythmic method. Script takes notes from selected track and matches most propper chords using selected instrument on added track. In current version only major keys and 3 voiced polyphony are available. For each key family and number of voices in chord separate two (7x12) matrices has to be calculated, that’s why for now only one is implemented.

Progressor works on specified range in patterns sequence set with first two value boxes (‘Range’). User has to choose key of major family that lead is in with popup list. Lead can run outside the key and play any of 12 tones in octave. In this case most similar key is matched for any note played outside the root key. ‘Match’ button runs the matching algorythm.

I hope this script will add some jazz to Renoise tracks smile.gif

Script is available for download below and published on tools page.

Future versions will match 3 or 4 voice polyphony to major and minor keys, will rotate the chords to let them follow the lead moving up and down the scale and skipping will be added to skip some tones that not require attaching new chord.

Happy progressing to all!

This is pretty cool.

But, I can’t change the range? It’s always 1/1

What is the range supposed to do anyway?

Range defines first and last pattern in pattern sequence that Progressor works on. Range is always 1/1 probably because your song contain only one pattern.

I’ve never seen songsmith before. Well, it looks like we are having concept collision with Microsoft here :) However, in my opinion, Renoise and Progressor gives much more independancy than Songsmith.


That tool just invalidates the campaign Taktik or someone came up with… “Renoise - Songsmith it ain’t.” It sure is now. :D

Good work!

Minor scales plz, I hate happy music.

Minor scales coming soon…
For now Progressor needs a bit of beta testing, so everyone is invitated. For any tune each chord should contain played note and should have maximum possible number of common tones with previous chord. Check if this rule works for your leads.

eew :S That was creepy!! :blink:

The vid I mean not the tool :P

Ok, yes. That explains it.


thank you. this great… minor coming ? … sweet.

Feature request:

Is it possible instead of the first pattern being 1 in your range-selection, this can be 0?

Well, 1 means first pattern in the patterns list (pattern sequence). This pattern can be zero or any other pattern. Do you mean start counting patterns in the sequence from 0 instead of 1?

I think this reminds me of a very basic verion of Stephen Kay’s KARMA software, which is used on several of the Korg workstations. (Which I’ve really never managed to figure out to anywhere near it’s potential). This sounds pretty cool!

I’m quite impressed with what you can accomplish with Renoise scripting. I had thought several months back Taktik said scripting would allow for basic procedures, but much of the stuff I’m seeing seems pretty advanced to me!

Yes! I don’t know how your default Renoise song looks like, but mine starts at 0 for the first pattern.

For example:
0 to 3 in the sequencer in my song = 1 to 4 in the range selection in your tool.

ok, this is not a problem to apply it. BTW pattern sequence don’t have visible index numbers in Renoise (maybe it is a hidden option?). I tried to make Progressor to work on selection in pattern sequence, but I couldn’t find API for that.

When I press [Match], the interface disappears.

But, I want to undo and try another key.

Can you keep the interface open? And pass undo to the pattern editor?


Keeping Progressor open is not a problem, but if is there an API for passing shortcuts to Renoise? I’m not sure. I’ll check the documentation again.

Simply “return key” is enough to send back the pressed key combination to the Renoise process (2.6B54!). However the pattern editor should have keyboard-focus if patern editor specific keys are pressed.(Only global keyboard shortcuts act everywhere)

Corrections, it’s b4 and only global keys are supported. Pattern editor focus is irrelevant.

function my_keyhandler_func(dialog, key) end  
-- When no key handler is specified, only the Escape key is used to close the   
-- dialog. For prompts, also the first character of the button labels is used   
-- to invoke the corresponding button.  
-- [added B4] When returning the passed key from the key-handler function, the   
-- key will be passed back to Renoises key event chain, in order to allow   
-- processing global Renoise key-bindings from your dialog. This will not work   
-- for modal dialogs. This will also only apply global shortcuts in Renoise,   
-- because your dialog will steal the focus from all other Renoise views like   
-- e.g.: the pattern editor.