Oh sorry, didn’t catch that. Maybe someone knows the author and their forum handle, so they can be contacted?
hopefully , i already tried to contact no reply so far.
After a quick search it seems to be @frenetic_friend, but I don’t know if he is already on the forum or into Renoise stuffs?
The topic about this pianoroll tool is here.
Have you checked out @Raul’s tool here: https://ulneiz.es/renoise-tools/piano-roll-editor/
It’s a middle ground tool, so it’s not quite the same as using a piano roll in a typical DAW. Plus, it’s got a lot of options you wouldn’t find in Renoise natively.
I started the project last year but after I found free Cakewalk I decided to stop my development. Current Renoise API is great but for good piano roll we need more (canvas, tracking of mouse position and left mouse click, direct audio without OSC). Today it is possible to create something between matrix (or step sequencer) and piano roll but why…
.
Did you make that ? That is beautiful
Is it possible to continue that project and bring it as close to do what a simple piano roll does ? No velocities, quantize and automations inside ,just to be able to compose horizontally* from 1/1 to 1/32 lengths in grid and note lengths ,snap to grid ,and octaves from c0 to c6.
Would you like to talk about it in some messenger?
Frankly to say, not now. Unfortunately, it is not work for hours but for days, maybe weeks. And I am 44 with small babies and lack of free time :-/
I would like to have a good piano roll inside Renoise, as you. Roll is very neat and useful for the off beat composing. But too much work and as a result we get semi piano roll with some limitations and bugs because with the current Renoise API tracking of mouse position will not be precise. I need some enhancements in API to get better result.
If you use Rewire and Bandlab Cakewalk you will get great piano roll for free. And this is the reason why I chose to stop my development. Give a try…
But never say never. If I have more free time maybe I can continue. Time will tell.
TBH if it was me it would be a lot longer than that
I’ll just mention that it is also possible to write the piano roll GUI front end with a 3rd party language/library/java/C++/python/malbolge…whatever and just use Renoise lua to transmit/receive the track data to/from Renoise via a network socket. That way you should gain control of mouse events and a ‘canvas’ area to draw to your hearts content. More work? Yup. Why don’t you write it then? I don’t feel the need for a piano roll in Renoise. But it is kinda doable to get something out of it if you are really dedicated to that type of thing.
+1. The viewbuilder is a bit limited, and even when abusing it you will be forced to make compromises. My evaluation is that you will end up with a piano roll that never quite will bring the ease and workflow that is expected from a piano roll conventionally.
Electron might be a good option as well. But eventually, all of this raised the question: “wtf… isn’t it better to use rewire and put some tracks where i really need a piano roll in the other daw? and mix in this daw…” It’s not ideal in all ways, but my answer to this was a yes.
EDIT: A VSTi piano roll would be very neat (“midi generator”). That minihost modular didn’t quite work like that last time i checked (?)… bummer. Maybe there are technical reasons (transport) to why that idea wouldn’t work.
EDIT2: With electron you can make it look almost native to Renoise https://www.dropbox.com/s/woomykh8kz7l32n/fakeit.gif?dl=0
EDIT3: Another abandoned project. The inevitable lack of keyboard+mouse workflow would never make it a comfortable enough roll for me. https://www.dropbox.com/s/ljiei7jvs6hbym7/gui1.gif?dl=0
Yes, I agree with you Joule.
What is the Electron? LUA Library?
Quite easy to use.
Mini host modular has a piano roll in case you missed it.
https://www.image-line.com/support/flstudio_online_manual/html/plugins/Minihost%20Modular.htm
I see. Thank you.
As you mentioned, it doesn´t matter what we use, C++, Electron, Lua, the result will not be as good and seamless as we want.
The current Renoise API doesn´t allow what we need. OSC is a nice feature and a way to get what we need, but it doesn’t make sense to create a Renoise plugin and use unsafe network protocol to communicate with the Renoise sound engine.
If I were you, I would contact Taktik and offer your money for his possible additional development on the API.
What we (as developers) need for piano roll? The priority order from my point of view:
- absolute control positioning or canvas
- mouse position tracking
- right mouse click handle
- play sounds from LUA without OSC
- resizable tool window
I agree. You wouldn’t implement it this way. But at least lemi I got some result from Renoise doing it that way
Yes, of course. The end justifies the means!
Alright , understanding that this is nearly impossible due to the API , and also me budgeting the API development is probably not realistic… I’d give 1 suggestion and 1 alternative solution.
The suggestion is as I said to 4tey also , since you guys have taken this piano roll to some point with your projects and you’re unlikely to continue with it , make it available to everyone so maybe someone else can continue your work at some point , don’t let those projects just die out.
Moving on for now and as I read in another post , is it possible to have a tool that copies midi notes from one daw and pastes them directly in renoise correctly ? With 2 daws open ,without having to rename, export and import midi clips which is a tedious thing for me personally …enough to kill the vibe and creativity going.
Is that achievable ?
- API and possible further development
The current API is not aimed at the complex plugin like a piano roll. As Joule and 4tey wrote, we can use a different approach like developing a standalone application that communicates with the Renoise engine but in this case, it is better to use the power of Rewire communication and use what exists than to “reinvent velocipede”.
I don´t think that the basic API functions we need will cost a big amount of money. Let’s say we just need additional GUI functionality I mentioned and we can use the OSC server for sounds. From my point of view, it is a matter of 2-3 full days to make these API functions. If you can and you are able to pay this additional development, I suggest asking Taktik. When we have these needed functions I believe there are many skillful Renoise plugin developers that are able to complete good piano roll.
- Releasing source code
I think many of us are willing to complete our incomplete tools but with more support from the Renoise API side. If we release our source code it doesn´t solve the situation because we all fight with the same API limits. Yes, maybe there is a genius that finds a way how to overcome all missing functionality for Win/Mac/Linux but I doubt we find him/her. And when someone finally finds a solution it will be more CPU hunger than a direct way. I don´t like this programming approach.
- Midi vs Rewire
Why copy MIDI notes? As Joule and I wrote, use Rewire. It will solve your needs in an elegant way. Moreover, you can find a 32b/64b Rewire bridge that works and can help.
You know what? I suggest you one mission. Ask Taktik about further development and my task will be to think more about my further development on the plugin for free…
I will detail some things that I think are necessary in the API to address this issue: “create a horizontal Piano Roll”.
Main things for the API
- Eduard Muller aka @taktik listen to the community about this demand. Without it, it makes no sense that we all discuss these things.
- FUNCTIONAL AND TRANSPARENT XYPAD UPPER LAYER. Add in the API a new XYPAD (or improve the one that already exists), which allows overlapping (upper layer) on top of any element (lower layer), which can be transparent, and that allows controlling the lower layer directly (remove_child, add_child is a trick “not suitable”). The only thing that XYPAD has to do is return the table of values x and y at all times within its area. This will allow you to directly control the buttons (or other objects) on the bottom layer with your “pressed” and “released”. It is essential that we have direct control of any element of the lower layer, obtaining the X-Y coordinates of the mouse at the same time.
- XYPAD SPEED CONTROL OF THE POINTER. Allows control of the mouse pointer speed when the user does not press any modifier key (such as CTRL).
With the API6 and these 3 additions (only 3), it would be possible to create a Classic Piano Roll, like those that some people want with their blocks, drag and drop and all that.
Secondary things for the API (by difficulty level to implement)
Secondary things would help to obtain a better GUI.
- PRESSED and RELEASED FOR XYPAD. Allow to execute a function in both cases. Maybe this should be on the “main things” list. But it’s as if the XYPAD is still a beta. It is not thought in depth. This property should already exist from the beginning.
- VERTICAL TEXT ROTATED 90º IN ANTI-HOUR SENSE. It would be great to have another property that allows you to rotate the text 90º counterclockwise, at least in the text, button objects, at least.
- TOTAL MOUSE CONTROL. At least differentiate between right, left, center, and wheel rotation. This is because all mice (or the vast majority), have at least these physical mechanisms.
Some notes / tips
-
To build a Piano Roll, the drawing of the blocks, which would be “painting” (overlapping images, or coloring buttons) and other elements, must be done by reading the data already written from the pattern editor. The mouse pointer “when clicked” should not “paint anything”. Everything should be drawn from the pattern editor, and not vice versa. The tool must be activated.
Then, the Piano Roll tool will only have to edit data in the pattern editor (basically inserting notes and their note offs). Another function should automatically take care of “painting”. This also implies that the notes sound. Painting without sounding makes no sense. -
It is essential to have direct control of the buttons (with their pressed and released), in order to control the OSC in some way (note_on, note_off trigger). It is not even necessary to ask @taktik direct control of the sound (this never will). With OSC it is enough.
-
Everything Renoise is capable of representing must be possible to represent on the Piano Roll, and not vice versa. The Piano Roll depends on Renoise, not the other way around. What Renoise offers (the data in the pattern editor) is more complex than a Piano Roll.
-
It is necessary to use a “layer priority” to address all overlapping notes between different note columns, within the same track. Additionally, the same if you want to represent multiple tracks at the same time.
-
We must address the jump between patterns. At least between the selected pattern, the previous pattern and the next pattern. This is quite complex. It is not enough just to represent notes of the current pattern. The drawing of a note block may depend on data contained in the previous pattern and in the following pattern. Here are certain limitations, which will depend on the number of lines of each pattern. If, for example, each pattern has only one line (Renoise allows that), it will be more complex to draw the blocks.