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

Enhanced arpeggio - working snapshot #3117

Closed
wants to merge 143 commits into from
Closed

Conversation

Rikislav
Copy link

@Rikislav Rikislav commented Nov 12, 2016

I'm trying to enhance the arpeggio functions by changing the int8 key semitones array into a structure which can hold data, at present pan and volume.

The chords are now a hardcoded QString, with the future objective to put data into a text or xml file which will be edited through a dedicated controller.

I added to the chords some examples which can show the possibilities (the Pan ones actually change volume and pan), in future releases things should of course be organized better

Here some simple demonstration: https://www.youtube.com/watch?v=e9c6k7iPljQ

PS. I am not a pro c++ programmer, and I guess would need some correction/advice for my empiric solution as to deal with pointers, vectors etc.. Forgive my naive comments, too

@Rikislav
Copy link
Author

Hmmm, I can't find the information why Travis can't compile here while it does on the fork: https://travis-ci.org/Rikislav/lmms

@zonkmachine
Copy link
Member

I'm manually restarting the build jobs that failed. It looks like Travis is a bit grumpy today.

@zonkmachine
Copy link
Member

OK, Travis passed.

Could you skip the formatting of old code altogether? It's really hard to find your changes in there.
And don't open a new PR, just modify this one.
Does older projects with arpeggios open like before?

I'm away from my build machine right now so I can't test this right now.

@Rikislav
Copy link
Author

Older projects using arpeggios should open as before, I transformed the old chords and added new combinations at the end.

Sorry for the inconvenience of the previous PRs and for the code formatting. The other PRs should be deleted: I pulled this one anew as the previous were too messy and didnt compile on all machines.

I was (still am) too fresh in all this and didn't understand well enough the protocols of collaborating projects. I'll try to be more careful. Should I reformat the two files and commit them over?

@zonkmachine
Copy link
Member

Should I reformat the two files and commit them over?

Yes. I'd change back to the older formatting and commit. Then squash down to one commit, if you're hip with that, or you can leave it for now and just push to your master.

You now are working from your master branch which isn't wrong but a bit unpractical. I suggest that you create separate branches from master for each project/bug that you're working on. It's probably a good idea to give branche names and commit messages english names.

The other PRs should be deleted

I don't think there is any function to delete a PR. Just leave it closed.
It takes a bit of patience to get used to git and GitHub. That's all.

@Rikislav
Copy link
Author

Rikislav commented Nov 13, 2016

I see I'm messing up... did exactly what I shouldn't (rebase published things) as I was just trying to accomplish

I suggest that you create separate branches from master for each project/bug that you're working on. It's probably a good idea to give branch names and commit messages english names.

just created the arpeggio branch, where to experiment, and without thinking I partially reversed my master to the original lmms/master. I was trying to understand reverting, rebasing, resetting... please be patient, I will master it, eventually, hahaha

I am also trying to

squash down to one commit

but in fear to flood this common space with other unnecessary actions I'll now work only on the new branch and merge it as it gets useful...

@Rikislav
Copy link
Author

Ok, formatted the code as best as I could, the compile should be working. I'm switching to another branch to start the next steps:

  • externalizing chords to file
  • building up an editor

Copy link
Contributor

@BaraMGB BaraMGB left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I only looked with my mobile through the code. I have to look deeper into it.

*
* @brief The ChordSemiTone struct
*/
struct ChordSemiTone {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The brace should be in the next line according to our coding guidelines

*
* Now it's a QVector, with an overloaded [] operator to maintain compatibility
*/
struct ChordSemiTones : public QVector<ChordSemiTone> {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Brace to the next line, too

* @param index
* @return
*/
int8_t inline operator[](int index) const {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Brace again

{
return m_name;
}

int8_t operator [] ( int n ) const
{
int8_t operator[](int n) const {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Brace again

* @param i
* @return
*/
const ChordSemiTone at(int i) const {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Brace again

}
};

struct ChordTable : public QVector<Chord> {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And Brace

@Rikislav
Copy link
Author

...I must have again made some confusion with this git thing, I'm sure I had formatted all these pointed out.
As it can be seen in the number of unnecessary commits I struggled a bit to understand how to undo, manage branches, rebase etc. Now it seems I made another mistake.
Well, I'll see into it and correct things as soon as I can, what a wonderful lesson!

We have a proverb here, "Never stir shit as it stinks the room", I guess the best thing would have been to start the project anew

@BaraMGB
Copy link
Contributor

BaraMGB commented Nov 15, 2016

@Rikislav There is no need for. You can push commits until it works. There is no limit for that. Take your time to learn this things. If it's ready we can squash all your commits to one in github before we merge that. It's a good occasion to learn all that git stuff.

@zonkmachine zonkmachine mentioned this pull request Oct 15, 2017
10 tasks
@zonkmachine
Copy link
Member

Back to lmms after a long time!
Adapted to the changes from upstream/master.

Sorry, we're still busy working on lmms-1.2 so this has been neglected. I had a go and watched the last video above and it looks really promising.

@PhysSong PhysSong added the rework required Pull requests which must be reworked to make it able to merge or review label Jan 15, 2021
@zonkmachine
Copy link
Member

@Rikislav Unfortunately I can't get this to build now and it looks like it has some merge issues. It's one of my favourite PR's of all time but I have to close it nonetheless. I have updated the original post with a link to the YouTube demonstration and posts it here also for good measure.
https://www.youtube.com/watch?v=e9c6k7iPljQ

Please bump us on our Discord if you need help or feedback on this.

@zonkmachine
Copy link
Member

zonkmachine commented Jul 30, 2023

I can't get this to build now

I was on the wrong branch somehow, my bad.

Branches master and riki-one builds but you have to tweak some files first. Just the editor won't open on any of those branches. The new arpeggios works though, including panning. Still a close though.

Edit: Eventually got the editor going too. Amazing!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
rework required Pull requests which must be reworked to make it able to merge or review
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants