Simple Pianoroll: com.duftetools.SimplePianoroll.xrnx


I must say @toimp, if I knew you personally; I would give you a hug for making this tool. Other users have made some super complicated versions of Piano Roll for Renoise and they charged for it. You have provided this incredible tool that people have been requesting for years. Again, I would hug you if I could … or buy you a beer … or something


Awesome tool ! very practical to visualize chords. The missing drag and drop is not such a big deal !

1 Like

I have tested the last version and have to say it is nice and useful. If I can suggest, provide please edit/select mode to allow one mouse click for note insert/delete (instead of double click). Unfortunately API doesn´t allow you to play inserted notes but using OSC you can offer that option.
In every case, good job, @toimp! :+1:

1 Like

Thank you for your feedback.

Yep it was intentional for effect commands i want to use with the piano roll :slight_smile: (mainly cut commands, extremely useful for VSTi) I’m thinking that is not a big problem when the value goes up to 0xFE. Maybe the Renoise team will add more effect commands in future, so it’ll be already supported, too.

@Lemi OSC is supported, but currently hard coded. Just enable it in the Renoise preferences, set port to default 8000 and udp mode. It should work. Mode buttons are on my todo list. You can use the ALT key as workaround. Holding it, allow you to add notes with just one click. (Its a known shortcut from Reason i was using in the past)


Great! Thank you for your reply. If you replace the grid and keyboard buttons with the images you can implement a renoise hidden xy pad under your grid to support dragging and a renoise slider under the keyboard for scrolling. Buttons don’t allow you to do that I think.

1 Like

This is looking cool!! I can’t wait to download and give it a try!
If you want to implement drag/drop with a background xyPad, this is a good thread to research for that; there are a couple of demo tools included (using negative spacing in the ViewBuilder rack to position stuff over the xyPad, and using snapback to detect mouse click/release. You can put an inactive button on top, or a bitmap with no notifiers attached. @joule also mentioned something about quickly hiding + showing a button allowing the xyPad behind to catch the mouse click)

I also thought of two things that could reduce scrolling lag; you keep two render buffers, and you scroll by increments of 2 note rows instead of by 1.
Each update of the view grid, you copy buffer1 to buffer2, then you write your new render data into buffer1. You then compare buffer1 to buffer2, and for anything that hasn’t changed since last view update, you don’t need to do anything. But for anything that has changed, you push the data from buffer1 to those buttons/bitmaps. This way you avoid the lag of updating your whole grid when only a few things change. Once this is implemented, if you scroll by 2 rows at a time, “white key” rows and “black key” rows will be mostly unchanged from scrolling each frame, as most of them should line up with the row that was 2 rows above/below them the previous frame.
The viewbuilder lag comes from updating bitmaps (I don’t know why), so doing whatever you can on Lua’s side, to avoid asking Renoise to update any more bitmaps than it has to, will give a substantial speedup.

Hopefully some of this info could be useful :slight_smile:


Uploaded a new version with some smaller new features and fixes. It seems the tool updater doesn’t work. I’m not sure why. Maybe anyone have a tip for me?

1 Like

@toimp I recently had some problems with the tool updater but ended up fixing them, maybe you might find a solution in this thread?

1 Like

i can confirm this. Updater not shows up new version 0.7.

Your uploaded tool’s ApiVersion is 6, but the current API version is 6.1, and the updater only looks for tools for “actual” API versions.

Probably it shouldn’t, but uploading a new version of your tool with API version is 6.1 should fix that.


Ok, thx good to know. Maybe this can be changed in future? I’ll change the needed api version for the next update.

1 Like

Amazing tool, thank you.
Would it be possible to show only keys in selected instrument scale?
this would be great…

  • what about function to specify number of microsteps in every note like 1x, 2x, 3x, 4x, 6x, 8x… so it will be easy to create hi-hat rolls (with Rxxx effect maybe) etc ?

Should be possible to show only keys fort the selected scale. Maybe highlight them differently would be easier to implement. I’ll add this to the todo list.

About microsteps, you can use the Rx effect as column effect in the volume and pan field as workaround.

1 Like

I believe that one way to increase the usage of this tool immensly would be to add tuplet grids (3, 5, 7, 9, maybe 11). It would become the ideal and best tool for “step sequencing” groovy drum patterns!

Maybe even make it better than traditional piano rolls by allowing you to ‘shift’ the grid right and left. I haven’t seen that in other software, but can imagine it encouraging a lot of rhythm experimentation. Add a swing valuebox while you’re at it :slight_smile: (S1 only has 10/20/40/60% which kind of bugs me)

(The grid is just an ‘input filter’ which assigns the appropriate position and delay values, right, so it shouldn’t be too complex to implement?)

Edit: Quantize ability is always a big bonus. Maybe even with % if you wanna be ambitious.

Edit 2: Unpopular opinion: refactor the code using OOP and classes before it’s getting too big. It will simplify development, especially later on.

1 Like

HI Guys,

This Simple piano roll looks awesome. I’ve installed it but when I try to run it I get an error message telling me to contact the author. I’m on Windows and Renoise 3.3.2. Any ideas?

Thanks guys

Sorry, forgot to add the screenshot…

It looks like you are running Renoise 3.2.1, so maybe an upgrade to Renoise 3.3.1 is in order(?)

Ok, i thought steps was a feature before API 6.1 But for this, Renoise 3.3 is needed. I’ve uploaded a version for 3.2 without these step parameters:

I’ve tested it with Renoise 3.2.4.

I have Renoise 3.3.2 on one computer and 3.2.1 on another. I get the same error on both

Just upgraded to latest version. It’s done the trick! Thanks guys :grinning:

1 Like