Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Arpeggios in piano roll #7580

Open
1 task done
SpomJ opened this issue Nov 16, 2024 · 6 comments
Open
1 task done

Arpeggios in piano roll #7580

SpomJ opened this issue Nov 16, 2024 · 6 comments

Comments

@SpomJ
Copy link

SpomJ commented Nov 16, 2024

Enhancement Summary

Unlike converting #3880 proposes, this is designed to be born from piano roll, and live in piano roll.

Why

Unlike arpeggiator, these are bound to rhythm, and as such are better suited for piano roll; they are also easier to edit than automation over chords. Particularly useful for repetitive patterns like pads and/or bass

Implementation Details / Mockup

Here's where the fun starts.

Main

The main mockup I can come up with is the "loop" tool.
How it works is: select a note pattern, activate the tool (it would better off being a hotkey, but can also be a toggle), and extend the notes. What happens then is the pattern is copied from start to end repeatidly (looping), then cut if it isn't a perfect multiple. It also works backwards just by cropping & deleting the notes.

There are two problems with this:

  • Ideally you should be able to specify space between the notes if you need any, however basic note selection doesn't enable that. We could add that as a text field, but that's ugly.
  • You probably need to make the notes much shorter than everything else, which is painful but I don't think there would be any better way to do that.
Alt resizing

There's also a different way. We can automagically shrink the selection like it already can currently, then concat it until it fits current length. it's essentially the same thing but backwards and I don't see any upsides over the previous method.

Alt: arpeggio generation

This is how it works in arpeggiator. We specify a chord, a note duration, and place the notes. There are several issues with this, for example we still need to slice the notes, and thus lose the ability to easily shrink the arpeggios. We also limit people to the pre-generated chords, which isn't a big deal but may break the workflow for some people. We also need more buttons.

Please search the issue tracker for existing feature requests before submitting your own.

  • I have searched all existing issues and confirmed that this is not a duplicate.

I may try to make a PR myself after the mockup gets settled, but I can't guarantee that.

@regulus79
Copy link
Contributor

I have been thinking of a similar feature, where users can duplicate the current selection of notes/clips. I believe it would essentially be the same as your feature, except that it would only allow integer repetitions. However, I ran into the same issue that lmms does not allow users to select empty space after the notes, so if a gap were wanted in between, it would not be easy to do with the current ui.

I agree a text field would be absolutely not be ideal. I suppose the way selection works in lmms could be modified to allow users to select empty space, though I'm not sure exactly how it should operate.

You probably need to make the notes much shorter than everything else, which is painful but I don't think there would be any better way to do that.

What do you mean by this?

@musikBear
Copy link

This confuses me.
It is possible to make any size of note-pattern in piano-roll, that be melodi, or arpeggio-notes, and then just copy the segment to any bar-size wanted in song-editor- And this method for elongating is pr design, and is one of the most smart things in LMMS, because these copied segments does not need to be identical! We can go into any of the small segments and make subtle interesting changes! If it was a loop that loop would be uniform in pattern, and boring!
About the

lmms does not allow users to select empty space after the notes,

A segment is the size of one bar, true -But that does not prevent you from placing notes in other ways over the beats inside that segment. It is perfectly possible to have the first note in segment in 2. beat 3. tick, or the end a segment in 3. beat 2 tick. Again this is the power of segments! They are like LEGO, and be combined in any way you can imagine, this is not possible in loops. A loop like those known from FLs always contain the same notes, and LMMS has the pattern-designer for that, because percussion often is 'loop'ish', witch never should stop you from inserting rolls or rifs one-hits in song-editor to spice-up the otherwise uniform percussion. So imo any loop tools for notes is limiting creativity, so even though it is making it 'easier' it is also resulting in less interesting music.

@regulus79
Copy link
Contributor

We can go into any of the small segments and make subtle interesting changes! If it was a loop that loop would be uniform in pattern, and boring!

I agree. However, I think the author's original idea may still allow this. Perhaps if after the user selects the notes and drags them out into a loop, once the notes are unselected, they become normal notes and you can change any of them however you want. That way you can take a 1-bar riff and loop it out to 4-bars, then make a few changes to some of the bars to add some interestingness to it. (I'm not sure if that was their original idea, but I think it could work)

@qnebra
Copy link

qnebra commented Nov 16, 2024

Arpeggios are technically broken up chords, so arpeggio notes, with arpeggiator controls in pianoroll is quite interesting idea. Of course arp notes edited in the same way as normal notes. But then, you can just made arp with regular notes, then copy & paste pattern.

@SpomJ
Copy link
Author

SpomJ commented Nov 17, 2024

And this method for elongating is pr design, and is one of the most smart things in LMMS, because these copied segments does not need to be identical! We can go into any of the small segments and make subtle interesting changes! If it was a loop that loop would be uniform in pattern, and boring!

But then, you can just made arp with regular notes, then copy & paste pattern.

I think the author's original idea may still allow this. Perhaps if after the user selects the notes and drags them out into a loop, once the notes are unselected

Let me clarify. The way I intend the tool to work is to simply do automatic copy/paste work. It's effectively a more elegant way to do select-copy-paste-paste-paste-... The notes left after that are separate notes that aren't nound to anything and still can be altered.

@SpomJ
Copy link
Author

SpomJ commented Nov 17, 2024

You probably need to make the notes much shorter than everything else, which is painful but I don't think there would be any better way to do that.

What do you mean by this?

The fact you still place the shortest notes and then just expand it. As opposed to just placing a long note and the chord being played in arpeggiator. However, I don't think there would ever be a more elegant and/or configurable way to do this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants