LMMS / lmms

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

Arpeggiator overhaul #3880

Open zonkmachine opened 7 years ago

zonkmachine commented 7 years ago

Some issues with the arpeggiator and the note sorting algorithms.

If you play an arpeggio over one note only, things generally work fine. There is the issue with occasionally dropped notes but if you use the function to skip notes and only arpeggiate over one note at a time, there is a chance that you will experience not a single glitch. If however you choose to arpeggiate over a chord, then you will most likely bump into a couple of the following issues.


Bug fixes/Basic functionality

Picture showing notes disappeared and extra notes added (as duplicates under the ordinary ones making them look bigger in this picture). arpagain-01.mmp.zip arpagain


Internal changes


Proposed functions

Spekular commented 7 years ago

Feature Request: Ability to convert a pattern played by the arpeggiator to notes in piano roll.

zonkmachine commented 7 years ago

Ability to convert a pattern played by the arpeggiator to notes in piano roll.

Added.

musikBear commented 7 years ago

Feature Request: Allow notes to have different delay effects in the arpeggio. This is known from f.i. Oatmeal and Synth1 and is awesome

musikBear commented 7 years ago

Ability to convert a pattern played by the arpeggiator to notes in piano roll.

How about the other way around -Eg building a pattern in piano-roll, including different note-length, pos, and velosity, and have that pattern exported to midi/ xml, and have arpeggiator able to import these arp-templates (partly known from FLs, but there is no edit-tool i know of)

zonkmachine commented 7 years ago

Allow notes to have different delay effects in the arpeggio

As in delaying the note, like shuffle or varying the amount of signal to a delay unit?

building a pattern in piano-roll, including different note-length, pos, and velosity, and have that pattern exported to midi/ xml, and have arpeggiator able to import these arp-templates (partly known from FLs, but there is no edit-tool i know of)

There is something called groove templates which are midi snippets that you can use to force the timing on a track. Ps. Did you see this PR https://github.com/LMMS/lmms/pull/3117 ? Check out the last video at the bottom post.

musikBear commented 7 years ago

Did you see this PR #3117 ?

@zonkmachine wooo that vid is impressive It is not what i talk about though. I mean delay like in echo, but infact it is the velosity that changes. I made a tut on how to build these 'velosity'-baselines, manually -Because that is possible! https://www.youtube.com/watch?v=i_SQdvCzhhU In Oatmeal he has an array of notes that can go into a sequenser (amazing VST btw, but very confusing) In Synth1, there are different velosity templates, for the arpeggio, and it is awesome, but everything depends on the same velosity changes, that i makes in the vid. The FLs feature i thought of are patterns that can be imported on a simple arpeggio with the option 'file' - I believe the groove-patterns are much later addition to FLs ..i think my trial version is 6 so it is ancient :p

zonkmachine commented 7 years ago

Got it! Trying it out now and it grooves. Actually, I'm pretty sure #3117 can produce this already.

musikBear commented 7 years ago

@zonkmachine

I'm pretty sure #3117 can produce this already.

Wooo! yesterday in bed, i realized that the groove-thing/ filed-aprSeq actually already is next to possible with the components lmms got now If you got an interesting arp-pattern and want to 'bank' it, all that is needed is to * mute everything

Only thing missing is:

If that is added in 1.2x(+) then grooves ao arp seq can be saved and imported! (i often do my best work in bed..)

zonkmachine commented 7 years ago

If that is added in 1.2x(+) then grooves ao arp seq can be saved and imported! (i often do my best work in bed..)

I don't think any more functionality like this is going to be in 1.2 . The first 1.3 RC should be out not long after 1.2 though., as I've understood it. As to your other ideas I've added 'templates' to the list for now. I'll look into the rest later.

zonkmachine commented 7 years ago

I think pretty much all regressions since 1.0 should be fixed. The last long standing issue now is the skipped/double notes which is currently held back by https://github.com/LMMS/lmms/issues/2606. It's probably the same issue though.

zonkmachine commented 4 years ago

I've split the duplicate/skipped notes into two separate tickets. The duplicate notes come from note lengths being calculated wrong causing extra space at the end for a new note to be generated.

zonkmachine commented 4 years ago

Proposed fix for the 'extra notes' here: https://github.com/LMMS/lmms/pull/5523

pkillnine commented 4 years ago

Ideally there would be a way to be able to change the arpeggio chord for each note inside the piano roll. Currently you can only set one chord per instrument.

musikBear commented 4 years ago

@pkillnine

Currently you can only set one chord per instrument

No you can play chords with arp, if you do it like this: https://www.youtube.com/watch?v=qBN6Hjom6S0

pkillnine commented 4 years ago

@pkillnine

Currently you can only set one chord per instrument

No you can play chords with arp, if you do it like this: https://www.youtube.com/watch?v=qBN6Hjom6S0

That's helpful thanks, but still quite clunky. If you could set a single note to play a particular chord pattern as an arpeggio, then it would be easier to experiment with different chords in the piano roll interface.