Brainstorming: Piano Roll

@Raul,

Flashing notes is possible by observing the line_index with an idle notifier. It’s not realtime, but I believe it’s fast enough not to appear terribly lagging (the update frequency is said to be something like 0.1s).

Rendering the piano roll as vertical or horizontal is mostly a matter of switching all height values with all width values, and all x_pos values with y_pos values. I think it would be a bad idea not to make a toggle for selecting vertical or horizontal mode.

The API is enough to make a decent piano roll imo. I don’t see any technical hurdles that can’t be dealt with, but it’s mainly a question of who has the motivation.

I dont agree. Maybe it would be a good idea to make this in lua, if 1. the api was much faster and less laggy 2. had a solid graphics/canvas functionality, 3. and the created gui could be displayed within the renoise gui, not as a floating windows.

I also think that there are already piano rolls for renoise made in lua?

I think you will waste your time with such a project.

@Raul,

Flashing notes is possible by observing the line_index with an idle notifier. It’s not realtime, but I believe it’s fast enough not to appear terribly lagging (the update frequency is said to be something like 0.1s).

Rendering the piano roll as vertical or horizontal is mostly a matter of switching all height values with all width values, and all x_pos values with y_pos values. I think it would be a bad idea not to make a toggle for selecting vertical or horizontal mode.

The API is enough to make a decent piano roll imo. I don’t see any technical hurdles that can’t be dealt with, but it’s mainly a question of who has the motivation.

Ooh please, could you build a simple tool with a single button that lights up with the passage of a note in the playback?Or explain to me exactly how to do it? 0.1 seconds is pretty fast, I think. On the whole, would not it be something heavy for overall performance?At least, if I had a basic example, I could implement it in my tool, GT16-Colors, which includes his piano.With line_index it is possible to associate each individual note with a specific button?

EDIT:The button should be turned off with an note-OFF or a new note below.

Puff, I do not have enough knowledge to build a pianoroll, yet, but if I knew it would already be built.It would be a great hobby to build it, and then see that it works. Would be wonderful.

If there were a button to change from vertical to horizontal, it would be better, of course.

Danoise does not lack motivation. He is always building things.Encouragement!4I think you would be encouraged too.If you want, I build the icons ^_^.

I also think that there are already piano rolls for renoise made in lua?

I have not seen any…

I dont agree. Maybe it would be a good idea to make this in lua, if 1. the api was much faster and less laggy 2. had a solid graphics/canvas functionality, 3. and the created gui could be displayed within the renoise gui, not as a floating windows.

The performance is not an issue. I find most of the API to be quite fast, GUI wise (at least the classes involved here). And known canvas methods are good enough (for a piano roll). But non-floating window isn’t possible, no.

The basic concept isn’t too difficult to script, but of course there’s “endless” incremental development involved, implementing stuff like quantization, tracker-specific ties/features et c.

Danoise does not lack motivation. He is always building things.Encouragement!4I think you would be encouraged too.If you want, I build the icons ^_^.

Just speculating here :slight_smile: I have a feeling that they wouldn’t want to build it with the current API. There are some undocumented ‘exploits’ involved, and it’s quite possible that there are planned API improvements at a distant horizon that would imply a different approach to how it would be built.

I think I just had an idea that is pretty feasible, and which might actually satisfy a good number of people who just want a visualization for chords and melodies:

Just slap the Instrument View piano on the Track FX panel, and make it so that it shows all the notes on the current line (without having to hit play.) Add some other stuff, like highlighting the specific note under the cursor, and maybe highlighting whole selections of notes over rows and columns too. I guess you could even make it so you could click and drag a note to transpose it.

Frankly, that’s all I need. It might not be a full visualization over time and all that, but it’s a good, doable compromise for the time being.

Edit:

Looking at it some more, there will be a lot of dead space left over. I filled some room with things from the advanced pattern editor pane. I have a whole bunch of suggestions for how to improve the advanced panel but maybe that’s best for another thread. (Does anyone else hate that there’s no way to remap instruments with [src: any] -> [dst: xx]?)

Added a play button (for previewing a chord.) Would be good to have a “sort” button too, even if it just called a script, like the VoiceRunner tool.

Hello folks,

I’m brand new here. Been looking for the perfect DAW, which led me to Renoise. But there are certain things I like about ‘piano rolls’ and I’ve come up with a visual of how I would like to see it incorporated into Renoise:

7347 demo image.png

Features of my design:

  1. I’ve never seen the appeal of horizontal piano rolls. My piano roll is vertical with notes arranged left to right like a real keyboard.
  2. Each note is shown as a waveform, with a line at the very top to clearly indicate the start of each sample
  3. There’s no piano keyboard image - I only need to see the shape of the melodies
  4. Notes are entered with keys - I’d hate to “draw” notes with a mouse.
  5. The notes in each track automatically stretch to fill the column width
  6. …This means if a track only uses 1 pitch, the waveform fills the entire width
  7. Width of each note slightly overlaps the adjacent notes, making better use of the space
  8. Multiple tracks can be “grouped”, combining their notes together in the same space. This could be automatic for all adjacent tracks using the same samples
  9. Note: This is only a rough sketch - I can develop this more, and have more ideas.
  10. Note: I haven’t even downloaded Renoise myself yet. This was based on a random screenshot I found online.

Also just to note that yesterday I made a new thread about my idea. I had searched the forum for “piano roll” but I didn’t see this one as it was on page 2 of Google, dated “28 Dec 2002”.

1 Like

:oGo, I had to reread the last comments of this thread to notice the situation and remember the problems I had last year with the vertical piano roll.

I just want to announce that I have already built my first vertical piano roll, and wow, I think it is a magnificent tool, very much in keeping with my hobbies and way of thinking. As we suspect, the code of the tool is surprisingly short. The XRNX (that is, the ZIP) occupies less than 60 KB. Another thing is the performance itself of the tool, which is somewhat heavy if the user increases considerably the number of lines and the number of octaves to be displayed. However, as a compact editor, I think it’s pretty good.

Almost since I registered in these forums, I have been researching and learning the API and LUA to get to build a vertical piano roll in the form of a tool, among other tools. I can say that I have reached the end of a trip.

We all know that another member of the forum built his own pianoroll (horizontal). But for some reason, it did not end. But, anyway, it is already proven that a piano roll is possible and fully functional. It is best to add a horizontal piano that is compatible with MIDI input. In this way, it is possible to play a MIDI keyboard and observe how the roll shows the notes arranged horizontally (since the piano roll is vertical).

I want to warn you of the problems that may arise if someone wants to build their own pianoroll. Renoise can show 12 notes per track. That is, you can show even the same note 12 times on the same line within the same track, thanks to the 12 note columns. This translated into a piano roll implies that the same “square” could contain those 12 notes, one on top of the other, say in layers. Therefore, it requires a configuration to establish which layer will be on top and which will be below. In my experience, the best way is to always set the most left note columns as upper layers.Something similar if you want to represent several tracks in the pianoroll.

Another issue is the use of blocks. If a note is represented by a rectangle to set its length, it is a direct problem of representing notes (always talking about Renoise as a background). I mean, by extending the length of the note in a long rectangle, you can hide other notes below, so the user will see less information (fewer notes represented). Therefore, I think that the best way to approach a piano roll for Renoise is to use frames for notes, and to cut the notes with another box that represents the note-off. This also solves the jump between patterns.

In short, if someone wants to build their own piano roll, I will be happy to discuss these things with him.I think the simpler the editor is, the better…

I am aware that a tool is an extension, not something native. A native pianoroll could be useful as a secondary editor. It’s not any joke. Conceptually, it helps the musician to order his notes in the head. Even if the pianoroll has problems of overlapping notes, it would be worth it. You do not see this, until you have a pianoroll running together with renoise at the same time. You realize how messy or arbitrary a tracker is when it comes to placing notes according to his tone, and it’s easy to contrast it visually (the tracker with the pianoroll and vice versa).

I believe that Taktik affirmed that a pianoroll would not be a solution, or something feasible. At least we know that it is possible to have an editor in the form of piano roll as a tool. And I am convinced that there are a few members of the forum experts in programming able to build their own pianoroll. I just wanted to say that it’s really worth having one together with Renoise.

I do not know, maybe in the next version of renoise we will see a vertical piano roll as a tool, at least. :wink:

I really do admire your work Raul, even you never programmed that RAS tool for the community :wink: YET A Pianolol will never happen, so get over it!

I guess you mean a “native piano roll”. I am talking about a piano roll as a tool.This has already happened (several times even).Regarding the RAS, that I have not published anything does not imply that it does not exist.

I think I’ve already stated it elsewhere, but… The main thing that would be lacking is the support of modifier keys. Everything else is doable - including something complex like drag-selecting multiple notes and drag all of them simultaneously to make their duration longer. Other than support for modifier keys, this is a good measure of what consitutes a piano roll worth releasing IMO. Anything else, I wouldn’t use.

(Your remark about overlapping notes is invalid. This is something that can occur in other DAWs as well, and that the user has to deal with. Sure, the risk is ‘higher’ if you render something that’s already been tracked.)

modifier keys?You refer to being able to do, for example, CTRL + left mouse click. Or simply right click or central for another order?Because I also miss this.And also the “released” of the keyboard keys.

I suppose that selecting several notes to lengthen or shorten them would be a typical operation to configure chords.

If you make a mesh of frames (buttons) with the ability to insert notes, or delete notes with the same click, it is very quick to change the length of several notes. If there are 3, it would only be 3 clicks. In the end, many operations can be solved with several clicks, and that would avoid having to select an area, and then apply a specific operation on it (lengthen or shorten the notes). I’m just discussing things.I suppose that using blocks (rectangles) to modify the duration of the note is something sacred for many pianorolls (because all DAWs use that). But it does not have to be like that always. Cubes can be used at any time.At all times I am talking about something functional, understandable to the eye (one cube, represent the trigger note, and another cube the note-off, would be the most faithful representation to Renoise).

Regarding the overlapping notes. Do other DAWs allow you to play the same note 12 times on the same track of the same instrument? Maybe I’m kind of lost here. I know that other DAW’s have problems with layer overlap too. But I do not know if they are so similar to the amount of information that Renoise can show with its 12 note columns. In a pianoroll a note corresponds to a square. You have 120 boxes for 120 notes. With Renoise you have that multiplied by 12. From my point of view, with Renoise there can be many cases where information is lost (vision of the notes) by that “superposition of layers”.Other DAW’s will also have this problem of overlapping notes, but is it possible that they do not have so many combinations? It is clear that if you use the pianoroll, it is likely that you will not superimpose notes, and if you do, you will see that something strange or different is happening.

Regarding selection, drag and other operations, it is something more complex. I have not used it. I have invented the possibility of editing by blocks (groups of lines), for a note column (selected ones) or for all note columns. It is more limited than a selectable area, but for most operations, it works very well, even with cutting, copying and pasting.At all times I have tried to make it as simple and functional as possible, without being influenced by the rest of the horizontal pianorolls.I think it’s not about “copying” what other pianorolls offer. It is possible to be something original with what we have.

When you have the roll in front, and you realize how easy it is to change the tone of a note, with just a click (nothing of drag), you realize the power of the mouse.Up to now it is the most interesting tool that I have built, because it has allowed me to think how to do certain operations in another way, such as modifying notes without dragging, or a reasonable selection method that is very simple to use.

So you still cannot grasp the elementary concept of a tracker as it seems Raul. You are not talking about a tool but just admitting that you are a fool if not able to realize that there is a piano roll in Renoise already. Just switch your monitor 90 degrees and there it is, your infamous vertical piano roll. VOILÀ :rolleyes:

What you are actually talking about the whole time in this thread, is a piano editor for the purpose of laying down chords and harmonies easier. Maybe you can gRASp this by now :excl: So there we are again, as this is the most urgent new tool one could make, adding"Instant Gratification" to Renoise.

But as usual you still want to keep it for yourself instead of lifting up the whole community. Your EGO must be very proud of you !!

Please, stop saying nonsense and disrespecting people. If you continue like this, it is possible that you do not last long in these forums. Again!

Just to locate you a little…

…we already have a piano in Renoise which we use to enter notes into the pattern editor or phrases…

The piano that you see in Renoise, does not serve to introduce notes, unfortunately, neither within the pattern editor, nor within the phrases editor.You can use your USB keyboard or MIDI keyboard, but not the mouse on the piano, which is the essence of the pianoroll.That piano of Renoise is basically a note trigger, but it’s not good for editing.It is a part of the instrument editor.

So what we both might also want is an editor to lay down notes like in a “piano roll” and being able to edit them.

That’s what we were talking about. Before, I just wanted to point out that it is possible to make a tool that is a piano roll shaped editor.I can affirm it, because I have been able to build it (with the peculiarities of my thoughts). Whether it is vertical or horizontal is indifferent, from the point of view of design. That is, if you can make a horizontal tool, you can also make it vertical, at least very similar, and vice versa.

For the rest, anyone programer who schedules tools for Renoise, it is usual to have “their personal touch”, since it is common for the tool to be for own use. Whether they share it, sell it or not, is another issue.Take a look at the wide variety of existing tools. You will see that all are different according to the programmer, despite using the same code.

On how to build a pianoroll tool, is that it is possible to build it in several ways, and control it in several ways, and all are valid as long as they work coherently with their design… “Pianoroll” is not a unique concept, it has not to be the same in everything, with the same appearance and all that.The good thing about programming is that you can do what you want, not what the great mass of people expect it to be. Precisely because you do not programs for anyone in particular and nor is there any binding contract or anything like that…

Edited.

After this video, I would probably reconsider my attitude towards the piano roll if it had similar functionality. I wonder if existing versions of scripts have similar functionality?

Very cool. In case someone else was as curious as me, the name of the software is apparently “Voyetra gold”.

1 Like

Yeap! Voyetra a very simple and very powerful instrument for quick work. I think it’s will be good compromise for a pianoroll option on script utility.

thanks for sharing this. This is pure gold. This man is mad (in positive way)!!!

1 Like

This video is the perfect example of the power of “pattern cloning” (whole or parts of them), as well as the skill of the player as a musician (using their MIDI keyboard).

In fact, it is possible to create a base pattern (pattern 0, with several pattern-tracks composed within this pattern), clone this pattern 0 as many times as you want (for example for the percussion section), and then play some of it on the fly. instruments for melodies on another track throughout the song (from the MIDI keyboard).

Yes, all this can be done from some other existing script, such as the Piano Roll Studio or PRS. At least you can clone up to 120 patterns using the roll by a simple vertical slot selection operation (for example, with BPM 120 and LPB 4, with 96 lines base pattern you get more than 24 minutes of “composite template” in 4 seconds, an outrage, by the way, a bit rough CPU operation). Once you have everything cloned and with your melodies, then you touch things up, both with Renoise and with the piano roll (very good for this by the way).

The problem with all this is the same as always, the abuse of cloning, an easy thing to do from Renoise (and that many people are not aware because they do not perceive it) and, of course, from scripts (lua tools).

This composer seems to compose a pattern-track, clones it, and repeats these two steps several times with different instruments, mostly percussion. Finally, he agrees to compose melodies. And that’s it, in a few seconds you have 2 minutes of composed song. Obviously, with the skills of a musician and knowing the software.

So the trick is neither in the software like Renoise nor in the lua tools scripts (in both cases you can do the same as in the video), but rather in the skills of the composer. This person is surely fully aware that he is continually cloning. Although he could clone a set of things just once and the percussion base is already prepared.

This whole topic is interesting. The “abuse of cloning” has always been a small weak point of trackers (it tends to be abused, sometimes without being conscious). Which by the way, a piano roll can easily show you whether or not you are abusing pattern cloning.

On the other hand, Renoise actually has a bit of a speed problem with pattern cloning (requires the prior existence of empty patterns to clone, or repeatedly clicking a button). But just with a script assigned to a key command that allows you to add a value of up to 3 digits, you can clone your base 0 pattern, even up to 999 times if you want.

2 Likes

Can’t really see what’s so special here? Maybe Ableton or Bitwig in clip mode are much more practical here? I think the “impressive” part here is that he uses instruments / tracks which are already quite perfectly aligned together. Like a song he did, then removing the pattern data and starting from scratch, note wise…? Maybe I am missing some point? :sweat_smile:

3 Likes