-
Notifications
You must be signed in to change notification settings - Fork 204
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
Add brushes and arpeggio to alphaTex #799
Add brushes and arpeggio to alphaTex #799
Conversation
very good! Thank! |
@jonaro00 Any plans to complete this PR. Looks like only tests might be missing? |
@Danielku15 Yes, however: The implementation as of now is mostly me just guessing. Since I'm not a guitarist, I'm not really sure what timings in the default behavior is reasonable. I would appreciate feedback on if that part is good enough or needs improvement. |
@jonaro00 Best would be to check the default settings of Guitar Pro what they apply as durations. |
@Danielku15 I looked in the gp7 test data files, they only include cases with quarter notes in tempo 120, with a resulting brushDuration of 60, which equals |
@jonaro00 From what I've seen in GP7 the brush duration is typically depending on the duration of the beat it is on and how many notes you have in this beat. The goal is that all notes in this beat can be still played within the beat duration, even if it is stroked. Unfortunately GP7 does simply remember your last selection in the UI and does not really give some recommendation. It provides you a range slider where you choose how long the stroke should take in total and then it spreads the the notes on this beat accordingly. e.g. if you have 4 whole notes (3840) in a beat, and you choose a half note for your stroke (1920) you will have in the data model a duration of 1920/4=480 making it 8th note between the individual notes on the stroke. I would say a good duration for an overall stroke is around 1/4 of the overall beat duration. Hence the formula could be:
Maybe the 4 needs to be tweaked, maybe it is better an 8. I would recommend to fiddle a bit on how it sounds. |
@Danielku15 There wasn't much difference between dividing with 4 or 8. I took 4 based on preference. Wrote tests, should be ready for review now. |
Thanks for the contribution 🎉 |
Issues
Implements #505
Proposed changes
Added the brush parsing to alphaTex.
The current approach for default values is to ensure that brushes don't play too slow, and letting arpeggios play evenly across the duration. It for sure feels like not all of the timings below are "correct" and need tweaking.
Here is some tex i used for testing:
Checklist
Further details