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

Chord spread #4146

Closed
wants to merge 1 commit into from
Closed

Chord spread #4146

wants to merge 1 commit into from

Conversation

zonkmachine
Copy link
Contributor

chordspread

Implementing delay for the chord stacking. Works pretty well but I'm a bit uncertain what the wanted combined result with arpeggio should be.

Closes #2380

Milestone 1.3.0 - pulled against stable-1.2 because I can't compile master right now

@zonkmachine zonkmachine added this to the 1.3.0 milestone Jan 31, 2018
@zonkmachine zonkmachine mentioned this pull request Jan 31, 2018
@WrillicR
Copy link
Member

WrillicR commented Feb 1, 2018

Will there be a way to choose which direction the chords spread?

@zonkmachine
Copy link
Contributor Author

That's a bit of a real estate problem. There isn't much room for more controllers in there.

@DeRobyJ
Copy link
Contributor

DeRobyJ commented Feb 1, 2018

Well the initial thought was made just to add some "humanization" to chords.
So this change applies the idea to have a delay for each note, which can be used as an arpeggio.

If we were to do something more about this, given the space, I'd suggest to have:

  • Upward strum (base note -> delay -> second note -> delay -> etc)
  • Downward strum (last note -> delay -> secondlast -> delay -> etc)
  • Random strum (one random note each time)

As for where to put it, I think we can shrink the drop-down more and include a radio button...
For example this is how it looks on my localization:
immagine
Look at the Arpeggio chord drop-down, it's already really short, while the Stacking one is quite long.

@zonkmachine
Copy link
Contributor Author

Well the initial thought was made just to add some "humanization" to chords.

Yeah, this PR isn't precisely 'humanizing' anything. You wan't some randomness in there then.

@DeRobyJ
Copy link
Contributor

DeRobyJ commented Feb 4, 2018

Yeah but for this PR in particular I'd actually prefer it staying like this, maybe implementing the direction options.
On my original issue, I mentioned using an external LFO Controller to change the speed of the strum.

As for humanization, I now think it should be done in a different way (and I don't think many DAWs have this kind of feature).
The general idea is to have a general option for the track (in the Misc tab) to add "inaccuracy", that delays any note event of a small random time. (And yeah I know it's easier said than done, might require serious work for such a small feature)

The issue I'm actually trying to address is Phase Relationship between notes or even instruments: when it's fixed, it gets boring, so it needs some randomization to make it more human-like.

But I should write an issue about this, as the feature request is out of the scope of this PR.

@lukas-w
Copy link
Member

lukas-w commented Feb 5, 2018

I'd suggest to have:

  • Upward strum (base note -> delay -> second note -> delay -> etc)
  • Downward strum (last note -> delay -> secondlast -> delay -> etc)
  • Random strum (one random note each time)

This sounds very similar to what the "Direction" option of Arpeggio offers. Can we unify this? The way I understand it, Chord Spread as suggested in #2380 is just Arpeggio with no repetition + increased note length.

@DeRobyJ
Copy link
Contributor

DeRobyJ commented Feb 7, 2018

As far as I know, the arpeggio funcion has to deal with note looping and timing in a way that might be a lot different to what is needed for this feature. But I may be mistaken about this.
Moreover, putting a toggle on the Arpeggio tab would not allow to have an arpeggio of strums, not that it would be used that much.

@zonkmachine
Copy link
Contributor Author

This sounds very similar to what the "Direction" option of Arpeggio offers. Can we unify this?

I tried to do this in the arpeggiator first but this is what worked fastest for this proof of concept.

I won't have time to implement this properly so if anyone feels up for the task, please grab this code.

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

Successfully merging this pull request may close these issues.

4 participants