-
Notifications
You must be signed in to change notification settings - Fork 7
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
merged with chordidentifier and added fretnotes, intervals, guidetone… #1
base: master
Are you sure you want to change the base?
Conversation
…s and rootless chords functionality
@gsc-dev hi! Thanks for your pull request, I'm glad to know that someone is willing to improve the plugin I started :) Do I understand correctly that you reused code from Chord Identifier (and some other plugins?) in your proposed changes? If so, we might need to change a license under which this plugin is distributed: I have initially put MIT license on this plugin while most of other plugins use GNU GPL license which requires all the derivative works being licensed under GPL as well. I'm fine with changing a license of this plugin as reusing other plugins' code indeed seems to be the most reasonable way to add many of features that could be useful for this plugin, but it would be good to clarify the sources of the code that you propose to reuse here. As for changes themselves, I like adding labels for note names and intervals (and it was also requested by other people), but honestly I do not fully understand the purpose of adding chord symbols generation to this plugin. Was the idea to identify chords while they are being added to a score? If so, I support the idea but perhaps it would be better to implement it in a separate plugin so that chord identification would work even without this plugin and regardless of note input method being used. I would be happy to help in development of such plugin, but if there are no reasons why chord identification should be tightly bound to fretboard note input method I would prefer to keep this functionality separately. I was also planning to put some changes regarding note input process and visual appearance, these changes are not so massive so maybe it would be better for me to finish these changes first. After that I could review your changes more completely. |
Hi @dmitrio95, I did reuse the code from Chord Identifier, so feel free to change the licence or remove the chord detection. You are right about the reason I included it as I wanted to double-check the chords as I changed the notes and voices when trying to get the best voice leading for my progressions. This is also the reason I included the support for naming rootless notes by adding the root as an unplayed note tracked in the plugin only, not the score. The chord symbols could be easily disabled by adding an extra checkbox at the bottom of the plugin. It could be interesting to decouple both plugins, but I still would be missing the chord symbols being updated on the go as I move the notes in both the score and the fretboard. I am not sure how this can be achieved but I am new to everything musescore, qt, QML, etc so you might haver some better ideas. The main reason I added these features was because I am learning Jazz on a Brazilian Cavaquinho with a DGBD tunning. There are not many resources in terms of chords so I am basically creating new chord voices (mostly rootless) and fingerings as I go, adding extensions and trying to be aware of guide tones as much as I can. However, I think these new additions and the chord symbols will be useful for anyone studying jazz, playing with chord extensions or trying to use any chords other than standard ones. I think it is great that you are working on improving the input process and visual appearance and I cant wait to see your new ideas, so feel free to merge, use or discard any of the suggestions in this pull request. Both plugins are awesome! Thanks very much for creating them. Best, |
Actually I have not created Chord Identifier, I have just adapted it to MuseScore 3 some time ago. As for a possibility for a separate plugin, onScoreStateChanged handler should be able to track actual score changes with Also I have just uploaded my pending changes to the repository. I hope to be able to review the proposed changes within the next week, or maybe propose some method to implement chords identification on the fly in a separate plugin. |
Hi @dmitrio95, One key feature for me is the automatic detection of the root and displaying the intervals for each note. Depending on how each note is added, new chord inversions and voices can be made, and the root will be on a different string, giving different intervals for each other note. I found really usefull to have this feature at hand and it depends on the chord detection. |
Hi @dmitrio95 Added some minor improvements... |
Hello! I have just added note labels, although implemented it more similar to a way it is done in this Guitar Pro example: https://musescore.org/en/node/295404#comment-949938. As for chord identification functionality, it is possible to decouple it right now but that would be not fully usable because of unclear situation with synchronization of Cursor state and score input state. I have created a pull request (musescore/MuseScore#5657) with the desirable changes and hopefully will be able to add it to some future version of MuseScore. After that it should be possible to create a plugin that could reliably identify chords just on the fly, regardless of whether note input is done via this plugin or with standard note input methods offered by MuseScore. |
Thanks for the update @dmitrio95. Good to know you are working on it. |
Another chord identifier (for inspiration) https://www.bfx.qsx.mybluehost.me/chordieapp/ |
Hi @dmitrio95
I merged the plugin with chordidentifier and added fretnotes, intervals, guidetones and rootless chords functionality.
Split chordidentifier into smaller functions so I could run it only on the currently selected segment so now it can applied chord by chord.
I am new to musescore, QT, and QML so there might be a couple of things you would like to change.