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
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.
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.
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.
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.
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.