LMMS / lmms

Cross-platform music production software
https://lmms.io
GNU General Public License v2.0
8.18k stars 1.01k forks source link

Split(Dual) View Piano Rolls #1438

Open FeralBytes opened 9 years ago

FeralBytes commented 9 years ago

Request the ability to have multiple piano rolls open at the same time. This enables the synchornization of tracks visually with out having to remember between switching from piano roll to paino roll. The best implementation I think would be to have each instrument with it's own piano roll window rather than sharing the same window instance. Thank you for LMMS.

bhattigurjot commented 9 years ago

Is this like 'ghost notes'?

tresf commented 9 years ago

Is this like 'ghost notes'?

They have their roots in very similar contextual limitations, but this one is different as it opens up the possibility of multiple piano rolls, rather than ghost notes which is really around singleton dialogs (technically MDI windows) and their lack of awareness of of themselves or eachother.

As a metaphor, its like the difference between having an operating system that won't let you open two file explorers at the same time (i.e. One instance and only one instance of of Finder, Nautilus, Explorer) but DOES allow a preview of the folder you came from.

Sometimes we just simply need to interact with two separate file explorers at the same time. :)

diizy commented 9 years ago

Hm. Multiple piano rolls... I don't really see the appeal personally, I think it'd easily get confusing - having several windows open, having to remember which one is which pattern... in general, we should strive to limit the number of windows the user has to deal with, not increase it.

I think possibly a better solution could be some kind of history tracking for the piano roll: by which I mean, back/forward buttons, kind of like in a web browser, that let you scroll back-and-forth between the previously-selected patterns. Same thing could work for the automation editor.

eagles051387 commented 9 years ago

What if it was a configurable option for the user if they want to have multiple piano rolls.

On Sat, Dec 13, 2014 at 9:16 AM, Vesa V notifications@github.com wrote:

Hm. Multiple piano rolls... I don't really see the appeal personally, I think it'd easily get confusing - having several windows open, having to remember which one is which pattern... in general, we should strive to limit the number of windows the user has to deal with, not increase it.

I think possibly a better solution could be some kind of history tracking for the piano roll: by which I mean, back/forward buttons, kind of like in a web browser, that let you scroll back-and-forth between the previously-selected patterns. Same thing could work for the automation editor.

— Reply to this email directly or view it on GitHub https://github.com/LMMS/lmms/issues/1438#issuecomment-66869269.

Jonathan Aquilina

tresf commented 9 years ago

I tend to agree that this shouldn't be the default, but just like one can clone a web browser, would it be unreasonable to support this?

How static is the idea of a Singleton piano roll from a code perspective? We know two can play at the same time if initiated from the song editor, so cursor syncing could be a problem (or keep Singleton editor playback via a slot that grays out all other piano roll play buttons).

I think the request has its merits so as long as we keep what we have by default. Creating another mdiwindow and widget instance should be relatively sane from a code perspective, no?

I wouldn't mind seeing this added from an advanced window management option, just not sure where to place it for easy access without cluttering an unrelated toolbar.

diizy commented 9 years ago

On 12/13/2014 10:31 AM, Tres Finocchiaro wrote:

I tend to agree that this shouldn't be the default, but just like one can clone a web browser, would it be unreasonable to support this?

How static is the idea of a Singleton piano roll from a code perspective? We know two can play at the same time if initiated from the song editor, so cursor syncing could be a problem (or keep Singleton editor playback via a slot that grays out all other piano roll play buttons).

Well, the first thing that comes to mind is that we have currently a single "selected pattern" which is the one currently open in the piano roll. This is indicated by a highlighted border on the pattern in the song editor. With multiple piano rolls, this will lose functionality, as you can no longer tell which pattern is open in which window. I also have a feeling there might be some additional obstacles to overcome... I'm pretty sure there's some parts of the codebase that assume a single piano roll, or a single "selected pattern".

Anyway, I don't personally see much point in this idea, as to me it seems like multiple piano rolls would just make things messy, but if someone wants to code it, and implements it cleanly in a way that doesn't interfere with other functionality, I'm not against it.

diizy commented 9 years ago

On 12/13/2014 10:31 AM, eagles051387 wrote:

What if it was a configurable option

Again I have to remind people (not specifically you, just people in general) that "just make it an option" isn't a catch-all solution to every suggestion. Anything that exists in the software, even if it's optional, is something we have to test and maintain, and any feature (even, and sometimes especially, an optional one) creates additional complexity and additional codepaths to test, additional surface for bugs to appear. So "just make it optional" isn't necessarily a good justification for every feature you can think of... any feature must at the very least be useful enough to be able to justify the additional complexity it adds to the software.

musikBear commented 9 years ago

Hm. Multiple piano rolls... I don't really see the appeal personally,

neither do i I think its most likely that there will be a 'where did i put that' situation. Its very intuitive, that the block you work in has one open PR, and when you want another, you select a new block in SE I also think of performance. Imo no

Sti2nd commented 9 years ago

Neither will I find this function useful. Also he is asking about ghost notes (exactly!) since he wants to easily match different patterns.

tresf commented 9 years ago

he is asking about ghost notes (exactly!) since he wants to easily match different patterns.

No, not ghost notes exactly. I've explained that in this post:

As a metaphor, its like the difference between having an operating system that won't let you open two file explorers at the same time (i.e. One instance and only one instance of of Finder, Nautilus, Explorer) but DOES allow a preview of the folder you came from.

Sometimes we just simply need to interact with two separate file explorers at the same time. :)

Sti2nd commented 9 years ago

Sometimes we just simply need to interact with two separate file explorers at the same time. :)

Ok, in that case it isn't the exact same. So apart from copying the notes, what would you need two open for? Btw, @FeralBytes , you don't know that CTRL + drag copy an element in LMMS, also between tracks?

Another thing to consider is how are you going to have two Piano Rolls open when they take up the whole width of some screens, they would have to be on top of each other, ok. But after you have done that with one pattern, you have to close both and open two new (unless you compose your whole song in one pattern, and sorry to say, LMMS isn't designed that way, it could be changed!).

tresf commented 9 years ago

Ok, in that case it isn't the exact same. So apart from copying the notes, what would you need two open for? Btw, @FeralBytes , you don't know that CTRL + drag copy an element in LMMS, also between tracks?

It is a contextual productivity argument older than most of us. (norton commander screenshot) :)

Another thing to consider is how are you going to have two Piano Rolls open when they take up the whole width of some screens, they would have to be on top of each other, ok.

I tend to disagree. I believe the OP doesn't need to consider that. Better toolbar overflow is on the radar for 2.0, so that simply puts his request behind that task, I'm not sure it invalidates it. :smiling_imp:

FeralBytes commented 9 years ago

I looked up Ghostnotes on Google. I think that function could be helpful in some ways, but it's not what I'm looking for. I'd like to explain a little better. First, I want to clarify that I'd like to have exactly TWO piano rolls open... not multiple as in 3 or more. Sorry for the confusion. I'm not a piano player by nature, so I have to always count my notes up or down from C in order to know what note I'm playing. When I've created a four or six measure musical phrase (the melody) and I want to create harmony and bass to accompany it, I don't want to simply copy and paste those notes into the next piano roll. Because in that case, when I'm trying to create a new complementary rhythm and different notes, those copied notes are in my way. When I have to switch between piano rolls, if the total phrase is longer than about 4 measures, I also have to scroll back and forth, counting the measures until I get to the one I'm trying to complement in the other piano roll. By the time I've finished counting, I can only remember part of the rhythm, or maybe half of the notes, and I have to go back to the original piano roll and find it, then back to the second piano roll to try to complete my objective. I lose a lot of time, just switching back and forth. It would be easier if the first piano roll stayed open above the second, so I can use it as a visual reference while I compose the harmony or bass in the piano roll below. In the case of creating bass, the two parts could be 2 or 3 octaves away from each other, so copying and pasting in that case doesn't work well, anyway. I DO actually use copy/paste when I only want to duplicate, but often that is not what I'm trying to accomplish. I like to compose in stretches no less than 4 measures, sometimes 12+ measures at a time, before moving between the complementary parts of the song. Having 2 open piano rolls, one above the other, would be a tremendous time saver.

I don't worry about the piano rolls taking up too much space, personally. I can move a piano roll anywhere, and I can even make use of my dual screens to put piano rolls on the right side and all other parts of the interface on the left. I'm sure not everyone has as generous a setup, but not every user would want or need this feature, anyway.
I don't understand the concern about mixing them up. I name each pattern as I create it.

LMMS is an amazing tool. But I believe its userbase is rather diverse in capability. My composition technique might not be the same as yours, but I do think that what I am requesting can be of use to more than just myself.

From a development perspective perhaps Marking the top or left Piano Roll as the Reference Roll would keep it up, while all other opened Rolls would open in the bottom or right Piano Roll. Top and Bottom would be perfered since LMMS's Piano Rolls scroll left and right already. I am using the anology that is applied by the "Extra Pane/Split View/Dual View" feature that is avialable in NemoNemo/NautilusNautilus/MCMC/KonquerorKonqueror/Double CommanderDouble Commander.

tresf commented 9 years ago

I don't understand the concern about mixing them up. I name each pattern as I create it.

Agreed. I think the major concern here was the opening-pandora's-box-effect that unlimited piano rolls could have...

The split pane idea actually makes a bit more sense from a mixing up windows perspective versus when compared to an arbitrary amount of floating windows. Perhaps you should retitle the bug report for clarity. I think a dual(split) piano roll would be a great compromise without breaking the singleton model we have today. :+1:

-Tres

Sti2nd commented 9 years ago

so I can use it as a visual reference while I compose the harmony or bass in the piano roll below

Exactly. You still didn't claim that you need access to another Piano Roll, you just needed to see the notes... I am thinking that when you choose "stay up as reference Roll" it will just stay up until you choose this option again, and then it will go away completely, so the other Piano Roll will be the one showing selected pattern. Would possibly be easier to implement than ghost notes, but IMO ghost notes are worth the double and can achieve the same.

FeralBytes commented 9 years ago

Sti2nd, There may be some confusion here on my part. I thought Ghost Notes in LMMS may have been the ability to mark a note on the Piano it's self. But it seems to be much more from what you are saying. Is this "Ghost Notes" that you are talking about actually implemented yet or is the concept under way? If so where? From this link the feature "Ghost Notes" is just marking a semitone which certianly does not show the entire pattern of a seperate track as I am stating. Even if I mark each note as a semitone, this still does not show the pattern against time. My aim is to see the pattern against time. So how can I make "Ghost Notes" work in this way? Even in LMMS.io Docs I can not find any mention of Ghost Notes, only Semitone Marking. I even used Google to search the site documentation with no results However searching the site docs for semitone yeilds the ability to mark notes, but not a pattern. Results

But you are right, I don't need 2 windows. I just want to be able to see both patterns at the same time. However is easiest for the developers to implement that, is what I would like.

Also I see from looking up Ghost Notes that another program does this using a unlimited piano rolls, but I would still perfer to use the split view. See Here here

tresf commented 9 years ago

If you prefer split view, then we'll keep the bug open and not mark as duplicate. Thanks for the clarification and examples.

FeralBytes commented 9 years ago

@tresf Yes, please do keep it open as a future enhancement. I know developer time is limited, so I appreciate you hearing out the request. Again thank you all for LMMS it is an amazing tool.

Sti2nd commented 9 years ago

Sorry to confuse you, ghost notes is not a function in LMMS. Ghost notes as I imagine it would let you open two tracks in one Piano Roll. Would probably only work on two patterns exactly over each other, they would be aligned in time.

However is easiest for the developers to implement that, is what I would like.

You would probably not like to work with a program that had that as a goal instead of making it easiest for the user. I guess it would be a text based program, if you are lucky with help text, but probably not.

aoreidmarr commented 8 years ago

Just wanted to add my two cents to this discussion. Not sure how much progress has been made on this since a year ago, but I've found myself running into some of the same issues as the OP. I build very complicated tracks with lots of different instruments working together in fairly complex patterns. It's very difficult to do that when I can only see the piano roll for one instrument at a time. I have to some how memorize the pattern for the previous instrument so I can match it to the next instrument. I know I can do copy and paste, but that makes it almost impossible to use playback as I'm building the tracks (since it will play the pasted notes in addition to the new ones).

Here's what I think would be absolutely awesome. One piano roll screen with all of the patterns for each instrument displayed together, with a drop down menu where you can select which instrument you want to write for, with each different instrument track color coded, with the option to mute each instrument during playback, and the option to hide/view each instrument's notes. That way you could very easily edit any combination of instruments simultaneously while easily referencing any information you need about timing, etc. Think of it kind of like Layers in Photoshop, except for music.

If I was any good at coding I would give it a shot myself. Maybe if I ever get good, I will. But until then, I just wanted to mention that I think that would be amazingly awesome, and, of course, that you guys are f*ing awesome for creating LMMS in the first place. Thanks for your time.

ddcovery commented 8 years ago

In my opinio, the key for a music editor is to maintain 1 unique time point (time cursor) shared between piano roll and song editor and an easy way to jump from one instrument to other without losing the time position.

One possible implementation:

vwren commented 7 years ago

This could actually be a consistency enhancement. The Beat editor already has a drop-down that lists all the possible beat loops. I think ghost tracks would be much more useful than multiple windows. A drop-down for ghost notes could be implemented similarly in the Piano Roll editor via a drop-down with check boxes (toggled) that would allow individual tracks to have their piano roll switched on or off on the current editor view. (incidentally this would also be very handy when using the Piano Roll to edit beat tracks).

The ghost tracks would not be editable, but with a second drop-down selecting the current track active in the editor, you could access all the instruments without leaving the piano roll editor, for things like copy/paste, or working on multiple tracks in the same section without having to keep finding your place. With some cleverness, it could be implemented with a single drop-down, possibly by left clicking to select current editing track and right click to toggle ghost visibility on/off. It could get confusing if the ghost notes for each track are not unique colors, but not too bad if only 1 or a few tracks are ghosted in.