New Tool (3.0): Randomize Notes

that would make the list pretty damn long,but i can see what you mean

well, as i said it’s not a biggie since there’s a workaround where you transpose the notes afterwards.

there’s no need to enter all the versions if there is a list of the “semitone jumps” for a scale (for example the major scale has these semitone jumps: 2 2 1 2 2 2) and look up table of what note follows which chromatically (c → c#, c# → d,…).

unfortunately; i haven’t ever coded a single line in lua so i don’t know the syntax or the datatypes, else i could have made a code snippet. i’m on vacation now so i’m a bit adverse to sit down and program atm… maybs if it starts to rain xDD

here’s a page with some scales and their “jumps” btw http://www.piano-les…cal-scales.html

cheers!

heres some scales in Lua format,that i have had succes adding to the note randomizer
still need to go through alot more

just thought i would post these,will post more later

{ name = ‘Algerian’, notes = {‘C-’,‘D-’,‘E-’,‘F-’,‘F#’,‘G-’,‘A-’,‘B-’,} },
{ name = ‘Augmented’, notes = {‘C-’,‘D-’,‘E’,‘F#’,‘G#’,‘B-’,} },
{ name = ‘Balinese’, notes = {‘C-’,‘D-’,‘B-’,‘G-’,‘A-’,} },
{ name = ‘Blues’, notes = {‘C-’,‘E-’,‘f-’,‘F#’,‘G-’,‘B-’,} },
{ name = ‘Hirajoshi’, notes = {‘C#’,‘D#’,‘E-’,‘G#’,‘A-’,} },
{ name = ‘Auxiliary Diminished’, notes = {‘D-’,‘E-’,‘F-’,‘G-’,‘G#’,‘A-’,‘A#’, ‘B-’, ’ C#’,} },
{ name = ‘Auxiliary Augmented’, notes = {‘D-’,‘E-’,‘F#’,‘G#’,‘A#’,‘B#’} },
{ name = ‘Auxiliary Diminished Blues’, notes = {‘C#’,‘D-’,‘E-’,‘E#’,‘G-’,‘G#’,‘A#’,‘B-’,} },

was just thinking if this tool,could be "modified"so that instead of randomly inserting notes,it inserts chords(for guitar or whatever)??

EDIT:come to think about it,dont know if that would be possible.
i now know how to make scales into Lua-code
now i just need to figure out how to make chords into Lua code

Thanks s-n-s, i’ll add those sometimes this week.

@maes. Maybe the word scale is misleading? I’m not going to do transpositions, or whatever, this script is mean to randomize notes, not follow the rules of composition. From the code point of view, every note possible is simply:

{‘C-’,‘C#’,‘D-’,‘D#’,‘E-’,‘F-’,‘F#’,‘G-’,‘G#’,‘A-’,‘A#’,‘B-’}

And the “scales” are just subsets of that. Can I use some other word than “scale” or something? Note constraints?

your welcome,i will add more,and send the "code"to you.

atleast now i have learned how to add scales in scripts

EDIT:btw is there a reason why renoise doesent support note prefixes like Bb,Eb,Ab,Db,Gb ??

Just to be clear, you learned to add scales in the NotesRandomizer script.

This is my personal way of dealing with note constraints, I coded it as such, not Renoise. It’s not going to work in another script unless said scripter follows the same conventions I used.

Someone else will have to answer your “Bb,Eb,Ab,Db,Gb” question, as I don’t know.

i think scale sounds just fine as it is now. i would just put “in C” after the scale names because that’s exactly what it is.

if you pick the algerian scale in the drop down list you will get randomized notes who belong to the algerian scale in C. (don’t know if having entries in the drop down list such as “Algerian in C” is correct english but who cares)

yeah, a scale is a form of note constraint and a subset of the twelve possible pitches.

Thanks for the feedback guys. I updated the tool to v0.4 on the official tools page:

http://tools.renoise.com/tools/randomize-notes

Thanks!

Very cool script!

A few comments and requests:

Please add a key selector :) Right now it only work as expected in the key C.
Next thing I don’t really understand is that it changes notes that are already correct in the scale chosen.
I would expect to have at least an option to preserve notes that are already correct.
Lets say I enter a C major scale in pattern editor.

C, D, E, F, G, A, B, C

Then run the script, choose Lydian, preserve octaves. Then also check my requested “preserve notes in scale”.
I would then like this to become:

C, D, E, F#, G, A, B, C (Modern Lydian mode).

Only F to F# has changed.
Currently you can only choose nearest neighbour random/up/down.
And it will change all the notes…

So a dropdown to select key, and a “preserve Notes in scale” would make this even more useful!

cheers

i know some of the scales i added isent quite right,i will see if i can fix this and resend them to conner

Would the option to transpose up/down after running the script to change key work to do this? Or rather programmed as a transpose function after randomising but visually you select key from drop-down or the like? As far as I understand it the spacing are the same for scales in different keys, just the base note changes, so this should work and be minimal programming.

Yes the spaces are the same for all keys. That whats scales are, a description for interval between notes within an octave.

Speaking of keys, it could be interesting to tell the script when the key changes in the track. This could be done by adding a dummy note in the last note column in a track, or even make a new track with only dummy notes (in case you are gonna change several tracks at once). The script would then read this notecolumn/track.

For instance GUI:

Notes Randomizer

Where: Selection
How:
Lydian
Nearest Neighbour
Rand UP DOWN
Preserve Octaves
Preserve Notes <-- preserve correct notes in scale

Read key changes:
Track 01

Randomize

Track 01
00 C-4 <-- key in C
01
02
03
04
05
06
07
08 D-4 <-- key changes to D
09
etc

A few comments.

  • Great ideas
  • That said, it seems “randomize” is turning more and more into “auto compose”
  • Patches welcome

No promises when I will look into all of the ideas, but a “preserve notes in scale” I will definitely do.

Excellent B)

“auto compose” :D , at best it is hopefully inspirational, and you can choose to be more logical now and do less extreme changes with this thing.

v0.5 beta
Added “Preserve Notes In Scale” feature.

Please test attachment and give feedback before I publish this to the tools page.

Great!

Auto-compose ftw! :wink:

Version 0.5 added to the tools page:
http://tools.renoise.com/tools/randomize-notes

There was a minor bug in the beta, so update to this new version when you can.