New Tool (3.1) GaussianHumanization


(pandabot) #1

This tool uses the normal distribution to humanize a song by varying the volume, panning, note timing and bpm.

some additional notes:

  • notes can be overridden if they’re too close together or if your note offset settings are real wild, the tool puts notes in new places based on what the gaussian random number is so it’s possible for multiple notes to be placed in the same NoteColumn

  • existing values for volume and panning are respected, if you already have a value there then the tool will won’t do anything to that NoteColumn

  • note offset bounds are optional, if this option is not selected then the lower and upper bounds are the first and last NoteColumn in the song (unless you’re humanizing selection, in that case it’s the first and last NoteColumn of the pattern)

  • the bpm bounds are also optional, if it’s not set then the lower and upper bounds are the minimum and maximum bpms allowed by Renoise

useful reference: https://www.javamex.com/tutorials/random_numbers/gaussian_distribution_2.shtml


(MattD) #2

I like the video, gets right to what the tool is about and presents it clearly.


(danoise) #3

I’m Pandafied!!

Very cool, will def. find a use for this tool.


(The Empty Self) #4

i’m going to use it as well :slight_smile:

maybe in the next track from scratch :slight_smile:


(Djeroek) #5

excellent stuff!

Got this notice when entering a value of 0.500 in the bpm value box;

‘C:\Users\pluge\AppData\Roaming\Renoise\V3.1.1\Scripts\Tools\com.pandabot.GaussianHumanization.xrnx’ failed to execute in one of its menu entry functions.

Please contact the author (pandabot) for assistance…

No matching overload found, candidates:

void find_automation(PatternTrack const&,DeviceParameter&,lua_State*)

stack traceback:

[C]: in function ‘find_automation’

.\humanizeBpm.lua:47: in function ‘getBpmAutomationParameter’

.\humanizeBpm.lua:68: in function ‘humanizeBpmByLine’

.\humanizeBpm.lua:110: in function ‘humanizeBpmInSong’

.\humanization.lua:11: in function ‘applyHumanizationToSong’

.\humanizeSong.lua:15: in function ‘humanizeSong’

main.lua:18: in function ‘init’

main.lua:8: in function <main.lua:8>


(pandabot) #6

Ahh okay if there were Send tracks then it was messing up, I wasn’t getting the index of the master track the right way. It should be fixed now


(Djeroek) #7

Still get it here with the latest tool version in a song file without sends;

‘C:\Users\pluge\AppData\Roaming\Renoise\V3.1.1\Scripts\Tools\com.pandabot.GaussianHumanization.xrnx’ failed to execute in one of its menu entry functions.

Please contact the author (pandabot) for assistance…

No matching overload found, candidates:

void find_automation(PatternTrack const&,DeviceParameter&,lua_State*)

stack traceback:

[C]: in function ‘find_automation’

.\humanizeBpm.lua:48: in function ‘getBpmAutomationParameter’

.\humanizeBpm.lua:69: in function ‘humanizeBpmByLine’

.\humanizeBpm.lua:117: in function ‘humanizeBpmInSong’

.\humanization.lua:11: in function ‘applyHumanizationToSong’

.\humanizeSong.lua:15: in function ‘humanizeSong’

main.lua:18: in function ‘init’

main.lua:8: in function <main.lua:8>


(pandabot) #8

Ah okay you must have devices in your Master track, I wasn’t getting the index for the MasterTrackVolPan device in the right way either. I think it should work now


(Djeroek) #9

Fixed now, awesome :drummer: