Rpg - The Renoise Phrase Generator

you rawkz , lemmings… lolz

Ok guys, major release.

I know I am probably more excited about this than you, but in case I am wrong, I know you will love this.

I was disturbed by the fact that the phrase generation engine was stiff. Normal and Wide mode were obviously not enough. It was versatile, but I knew it required a change from the get go.

So, Enter Phrase Generation Handlers
RPG 0.20 introduce a completely flexible yet user friendly way for you to decide which positions are controlled by each slider. We are still in the limit of a 16-row phrase, but the possibilities are quite nice. I may change it in the future to support longer phrases, but for now it seems more than sufficient to generate right about anything.

Since most of you do not read the Readme I am assuming (since it is long…), then bare in mind this: In general, the first slider controls the most significant position, and the fourth slider, the least significant. This is the same for all Phrase Handlers.

So far, you have met the Narrow and Wide phrase handlers, this version adds two more: Groovy and GroovyWide.

Here is the complete list of changes since version 0.16:

  • Changed : After pasting in Renoise, RPG will get back in focus. This is probably more convenient, since the mouse wheel only operates on the window when it is active, and now, we can use repetitive Enter on RPG to generate and paste instead of Ctrl+Q.
  • Added : Ctrl+Left Click on a slider will set it to zero.
  • Changed : Wide Mode and Normal Mode removed. Now replaced with a new customizable Phrase Handler (see Phrase Handlers section).
  • Changed : Sample block to a double column 16 rows representation of the phrase to acomodate the Phrase Handler’s needs
  • Changed : Skin format now includes a few additional values. Older skins may require a small adjustment.
  • Changed : Some more improvements to the way we paste into Renoise.
  • Added : Some additional phrase handlers.
  • Added : Some presets.
  • Added : Now remembering the last preset on exit.
  • Changed : The “Default” preset is no longer special. It can be deleted.
  • Changed : When all presets are deleted, we will create an “Empty” preset. Same goes on RPG startup, if the folder is empty.

Now, I know I havent defined this tool yet, so here goes:
This is (wait for it…) a PresetWare - If you like it and use it, send me your presets! :)

Enjoy!

this is just amazing,wooow

Dont know if anyone is having the same problem - the compiled version does not paste anymore for me. Working on it. The renoise clipboard is tricky.

hi icarus

i can confirm this,it wont paste here either
im using ver 0,20

Thanks s-n-s.
WOuld you mind redownloading and trying again?
This was a very weird autohotkey quirk… i think i fixed it.
v0.21 is up.

i will try right away

EDIT>just tried it,and now it works just great.
dont know why it didnt work before though,this is a really great tool

Thanks for testing.
AHK is not too good with variable scope, so I enocountered this problem in the past where when the code is too big, some differences occur between the compiled version and the non compiled version.

Anyways Version 0.22 is now up, fixes the paste problem in 0.21 and the non-working right click in version 0.21.

3 versions in 30 minutes. thats gotta be some sort of a lame record no? :)

im glad i could help,im gonna use this alot in my future tracks,just made like 5-6 useble nice sounding basslines :yeah:

Rad dude!

Great updates, Icarus! With this pace, I can’t help but wonder how version 1.0 will look like… ;)

The new phrase handlers are great, so is the Fx parameter implementation. The new skin(s) look really nice, and the GUI layout is even more pro now.

I’ll give you my honest feedback in regard to this specific change:

Frankly this change wasn’t really for the better IMHO. Why? Because when a new phrase is generated, I immediately want to play it so that I can hear and judge whether it was useful or not. When RPG get back in focus after pasting, that means I’ll have to click back to Renoise and press Alt Gr (Play Pattern). So personally I find this to be NOT more convenient, quite the contrary. I like the fact that, in your previous versions, RPG worked “in the shadows”, making pressing Ctrl+Q feel like calling a native function of Renoise itself rather calling it from an external application. (Using Enter from RPG isn’t a workaround either since the user still has to manually switch focus back to Renoise in order to hit play.)

Other technical issues:

The automatic “Home” key feature (aka ‘Paste on first row’) doesn’t seem to work when RPG operates on my system. What RPG seems to be doing instead is to send Ctrl+Up, which gets 64 rows up from the current cursor position to the previous pattern. That is, if the cursor is placed on row 9 in pattern 2, then if there is a pattern 1 above it (in the pattern arranger), RPG will paste the generated data into pattern 1 starting at position 9.

Thanks Transcender,

So, in regards to the going back to focus, here is how I use it, and intended for it to be used:
First, I generate a phrase into Renoise, and let it play (RAlt).
Then, I am back in RPG, and while it is playing in the background, I make changes, and repaste. So, you only have to click Renoise once, and press that play button - and then you are free to do changes in the RPG gui as you wish. When I have a nice phrase, I simply press ESC to hide RPG, and then play in Renoise until I am ready to Ctrl+Q again.

Of course, if this makes even a handful of people annoyed, I can easily add a configuration in the INI file to say StealFocusAfterPaste = 1/0
I do not believe this requires a GUI checkbox though, I am sure you would agree.

Now, as for the Home key not working - I spent a lot of time testing what is the best way to send the commands to Renoise, since as I mentioned, it has its own clipboard and control over the keys.
In my Readme, I mentioned (I think) that I am sending Ctrl Up - which means I am in fact “releasing” the ctrl key. This is needed, since you may be still holding that Ctrl key after pressing Ctrl+Q, so if I just send “Home”, Renoise will get Ctrl+Home.

Here is my Autohotkey code for the paste operation - do you have Autohotkey installed on your machine? If so, I will be able to send you a few snippets of code, for you to test which works best. If not, and you would be interested, I can compile a code with a few tests, so that you can tell me what works best.

Of course, I dont want to impose, so if this is more than you have time for, no problems - we can find out what the problem is in other ways. (p.s. if anyone else is facing the same issues, let me know please)

  
; We are here only after establishing that Renoise is available  
WinActivate Renoise ; Activate Renoise and wait for it for no more than 2 seconds  
WinWaitActive Renoise ahk_Class Renoise,,2  
  
If( Not ErrorLevel ) {  
; If we are all good (Renoise is active), release the Left Ctrl key and send Home then Ctrl+V  
 SendInput {LCtrl Up}  
 If( GuiPasteAtHome )   
 SendInput {Home}  
 Send ^v  
}  
; Go back to RPG  
Sleep 200  
WinActivate %FullNameString% ahk_Class AutoHotkeyGUI  

EDIT: Transcender - I am assuming that a) Your Home key is doing what it is supposed to and that B) you are using the left ctrl key for Ctrl+Q - correct me if I am wrong, because these could explain.
Also - please tell me if pressing the Generate button (not Ctrl+Q) goes home or not.

Now thats just sweet!
Excellent and thank you - I hope people like it and use it.
I noticed you are hotlinking to all relevant material, and without image dimensions, so its all good - I will make sure these stay at their current location.
New features coming up, really soon (maybe tonight) and of course, I am open to suggestions and feature requests and annoyances and all that.

Thats good to know thanks.
But for now it is best as is, since I am definitely not done with the development.

Ok, another release with major changes.
Version 0.30 is up and ready.

I have thought long and hard about how to implement randomized instruments without making the user interface too bloated, or too confusing. I think I accomplished at least half of that objective… but, you would be the judges.

So, in a nutshell - you can now have RPG use random instruments. Up to four are allowed, and they must be placed one after the other in Renoise. I know, a little limiting, but it had to be done in order to keep it as simple as possible - without the need to type in different instrument values (you only type in the first, as before).

There are two modes to randomize these instruments:
The first and the simple one, is as you would randomize notes - slider at maximum, this instrument will appear a lot, slider at zero, it will not appear at all.

The second, more tricky way to understand, but I think very powerful, is “By Beat”
You are using the same controls, only now each instrument’s slider is associated with its counterpart in the Position Sliders group. So as a simple example, if instrument slider #1 is at 90%, then on positions controlled by slider #1, we will put instrument #1, 90% of the time. At the remainig 10%, we will put any of the available instruments (assuming that other instruments have their slider at higher than 0).

This was the long description.
(The short description is: It is good for drums, deal with it!)

I have of course provided you with some presets that utilize this feature, for you to learn from.

Since this is a lengthy post as it is, I will post the release notes in a separate post.

Version 0.30 - Release Notes

  • Changed : Small changes in skin format.
  • Added : Ctrl+Right click on a slider will now do the same as Ctrl+Left Click (reset slider to 0)
  • Added : Configuration in INI file to disable the Focus After Paste (thanks Transcender).
  • Added : Instrument Probability Sliders - RPG can now randomize between up to four consecutive instruments.
  • Added : By Beat - a drum-friendly option, to randomize instruments based on their position.
  • Added : Can now generate more than one (parallel) tracks. This is useful to generate chords, or dual-channel pads etc.
  • Added : Ctrl+S now saves the preset immediately (without the Select File).
  • Added : Mouse cursor will turn to hand when on top of a slider. Can be disabled in INI file.
  • Changed : RPG will no longer paste empty effects column, so you may add your effects in the effects command and we will not override them.
  • Added : Some presets that use multiple instruments - these start with the letter m.

EDIT: Ok, so I learned the silly way that this forum chains double posts. Cute… :)

weee another nice update,will try this first thing in the morning

thanks Icarus- this is a cool addition to the renoise arsenal!

Youre welcome jasper, glad you like it.

So, I have prepared a little proof of concept for the new features.
I have generated a 3-track / 3-instrument pattern with one press on the Generate.

I have prepared an MP3 (click) with the gradual elements:
First 2 patterns: Single track single instrument
Next 2: Single track / 3 instruments
Next 2: 2 tracks / 3 instruments
Finally: 3 tracks / 3 instruments (4 patterns, for the drama)

Did I mention single press?

damn you just keep pushing it aren’t you ? :D awesome.

btw, it seems then when you set the same value on different note probability sliders the data doesn’t want copy itself into renoise ? that on purpose or something funky ?