Guitar Sustain

• Nov 7, 2019 - 18:30

How do I get the music score to sustain a guitar chord, when I strum?


Comments

I know this is from a couple years ago, but I want to do the same thing. Putting a piano-style pedal notation works. It sustains a little more than you might wants but it is close. You can fiddle around with it to get it just right. I am using 3.62.

In reply to by scorster

Thank you. I downloaded it. It seems complicated to use but I am fairly tech-savvy so I will try it. Maybe you can answer me a few questions about how it works. The directions tell you to unpack the MSCX to create a MSCZ file to use the plugout on.
After applying the plugout, it tell you to repack the MSCZ. I don't know how to do that (repack).
Also, my score has guitar as one of several instruments. Do I have to copy and paste the guitar into an empty score to use this plugout, then copy and paste it back into my multi-instrument score? Directions are vague on this.
Finally, the directions tell you it works on tablature scores (not note scores). My guitar score is using standard notation with an attached tablature below it. How do I keep the tablature score and get rid of the notation score in order to run the plugout? I am afraid if I delete the notation score it will delete the tablature notation on the tablature score. Of course, once I run the plugout, I will need to reestablish the standard notation score. How do I do that?

Thanks.

In reply to by odelphi231

There are no directions for pack/repack as this is not needed. I'll upload the latest version tomorrow with a video tutorial. If you want to add a score to this thread I will use it in the video. There is no need to delete any notation. It requires tablatures but notation can be linked. It just cannot work on notation scores which have no linked tab since there is no string information.

I don't know what happens with multi instrument scores as I don't have any but we can see what it does with your score.

I think that I need to write better instructions!

(Piano pedal has too many faults for guitar and is tedious to apply).

In reply to by odelphi231

No problem. I'll choose a sample score to make a video.

There are just 5 steps in using the plugout:

    1)  Launch Musescore and the Excel Plugout workbook
    2)  In Musescore, open an .mscz file then save as an .mscx file
    3)  In the plugout open this .mscx file
    4)  Run "Let Ring" and save the updated .mcsx
    5)  Open the updated .mcsx file in Musescore and see if the ring is as required.

• If it's good then you can save back as .mscz
• If it's not good then go back to step ( 2 ) and adjust the parameters used in the plugout.

I would always work on a copy of the original .mscz file until you are sure that the plugout updated version has no corruptions. I've never seen any yet but I would prefer that users take this precaution.

I'll post the current version later today and you could always have a play with it on some test scores.

In reply to by odelphi231

Uploaded version 2.2, a checksum and also a video tutorial.

See MuseScore Folder on OneDrive
https://1drv.ms/f/s!AtZbFhgSR71Nge4jNlYRccgle4fhiA

Please take a copy of any .mscz files before applying plugouts.

Any questions are welcome. There is a user guide built-in to the workbook and details of how to use the various parameters for each plugout.

The source code is unprotected and free for you to modify.

In reply to by Ziya Mete Demircan

They can already be heard. If you watch the notes in MuseScore desktop then you can see them remain highlighted beyond the PRE and they continue to sound. But there is no harm in adding an extra blank measure or two. (You can see this in the uploaded video.)

One important point to note is that the soundfont used needs to support sustain. Some fonts have a very short decay envelope to a low dB level and these are not suitable for sustain.

In reply to by yonah_ag

Great job. I looked at it. Unfortunately, I don't have Excel. Learned through trial and many errors that it only works in Excel. Not your problem, but something to keep in mind for people who want to try it. Would be great if it could be converted to a plugin.

In reply to by odelphi231

It may work as a plugin but I'm a beginner at plugin language so I'm not sure. It could be ported from Excel to Libra Office, which is free, but a plugin, (or even native Musescore), would be better.

If you want to post a test score then I'll run the plugout on it and re-post.

In reply to by yonah_ag

I did some google research and it is possible to convert MS-VBA to Libre Office VBA but it sounds like it is a very tedious process. Sound like there are a lot of differences. I may try my hand at it - if you don't mind me using your code. I may take you up on explaining the source code and data structures, especially the Cell(X,Y) code.
I do have another idea for an Excel plugout if you wanna try your hand at it. You are a very good VBA programmer. You could probably use 70% of the same code as the sustain plugout. There have been some calls for a velocity randomizer. It randomizes the velocity of each note, within a user set range. I am thinking it would have to be a % range (ie 1-7%). A better version would be one that slightly gives a higher velocity to the first note of each beat (probably not an easy programming task).
Thank you for the offer to run my music through the plugout, though I have access (through work) to Excel, so I may run my music through it.
UPDATE: I noticed the directions say to keep Musescore open. Is that required because, of course, I don't have Musescore on my work computer.

In reply to by odelphi231

V2.2 includes a "Beat Map" velocity mapper to automate accenting a score. A different velocity uplift can be applied at 1/64th note intervals. Several maps are included for 4/4 and 3/4 time and user defined maps can be added. These are non-random but do help the score sound a bit more musical.

This is the UI for it

Screenshot_20211015-222408_Excel.jpg

In reply to by yonah_ag

Not sure of the usefulness, but several people have commented they would like to be able to "humanize" the playback with randomized dynamics/velocity so it doesn't sound so mechanical. Some other music writing software, like Finale, has a humanizer function built-in.
You have done a great job, so anything you give us is great.

In reply to by odelphi231

I did comment in one of be "humanize" discussions, did some research and testing. Small random changes seem like they should humanize playback but in practise they really don't. Humanisation comes from humans or AI programming. Humans use their musical abilities to infuse a score with life and this doesn't come from randomness.

See, for example, this video on rubato, "The Art of Stealing Time"
https://youtu.be/faUwRpiZieU
Screenshot_20211016-192916_YouTube.jpg

In reply to by yonah_ag

I am specifically referring to randomizing the dynamics, not the tempo (rubato). I agree randomizing the tempo would not sound realistic because using rubato is such a personal "feeling" that a computer can't give to music without some very sophisticated AI, which wouldn't be random.

In reply to by odelphi231

I have to concur with yonah and others. Randomizing MIDI velocity does not improve the musicality of a piece, unless applied very carefully with layers of filters and gates.

Decades ago when I first got involved with MIDI I looked forward to the option of quantizing timing because—as a string player— my real-time keyboard recordings suffered due to my weak keyboard skills. I was definitely excited to quantize my first recording but steeled myself to an unpleasantly unhuman result after setting quantization to 100%. To my surprise the impact sound much like what we strive for. It didn't sound as cold or mechanical as I expected. Later I settled in with 96 to 98% quantization, which took the "too perfect" edge off. Conclusion: Improved or "perfected timing" did not sound awful.

On to velocity, the topic at hand:

Jarring velocities were another frequent and glaring error in my realtime recording. Setting all velocities to a value like 80 produced an unlistenable result that sounded like notes banging meaninglessly. Randomizingthe 80 just sounded weird, no matter what settings I used.

Tamping down the extremes worked better. Randomizing from there rarely worked. Applying accented and de-accented patterns worked best. And I still rely on that for scores that I've not recorded in real-time.

scorster

In reply to by scorster

I have to respectfully disagree and here is why. Even if Lang-Lang (I assume we all know who he is) played a Chopin piece the volume/dynamics of each note would not be the same. Humanly impossible to be exactly the same. Each note would be off by a little bit from the surrounding notes. If he was playing a soft/piano piece into a midi machine so you could measure the dynamics, a random 4 notes it might be something like this: 40,42,39,40, etc. And, of course since he is a world-class pianist. it still would sound brilliant. No one would say Lang-Lang's playing sounded "weird" because his dynamics were not quantized to 100%. In fact, I would venture an educated guess that Lang-Lang himself would not want his dynamics to be like a machine (with no variation). For someone like me the 4 random notes playing softly would be 41, 50, 36, 43 (much bigger variation). 😆 My premise is that the dynamics (even for a world-class pianist) are mostly random within the dynamic range the composer wrote (ppp, pp, p, mp, mf, etc). That is what I am asking. I am not asking for totally random to where you would see 4 random consecutive notes like: 40, 93, 20, 127. ALL humanization techniques in any music composing software (Sibelius, Finale, etc) keep the randomness to a low (1-5) percentage (+/-) from the original note.
I agree with Yonah that I don't know how much difference it would make, but Musescore composers have been asking for it and Yonah says it can be done. I am happy with whatever Yonah gives us. I am just making the comment that some MS users have been asking for something like that. As for accenting the notes, those same MS users would be in hog's heaven if they can get humanization of velocity AND accenting on the beat. WOW!!

In reply to by odelphi231

odelphi231 wrote Even if Lang-Lang (I assume we all know who he is) played a Chopin piece the volume/dynamics of each note would not be the same. Humanly impossible to be exactly the same. Each note would be off by a little bit from the surrounding notes. If he was playing a soft/piano piece into a midi machine so you could measure the dynamics, a random 4 notes it might be something like this: 40,42,39,40, etc. And, of course since he is a world-class pianist. it still would sound brilliant. No one would say Lang-Lang's playing sounded "weird" because his dynamics were not quantized to 100%. In fact, I would venture an educated guess that Lang-Lang himself would not want his dynamics to be like a machine (with no variation)

@odelphi231,

I'm not sure if you're responding to my comment, but I want to say I'm in total agreement with your statements above. As I stated, few things sound worse than all notes same volume.

For someone like me the 4 random notes playing softly would be 41, 50, 36, 43 (much bigger variation).

It's all about the phrase. Such a large variations may sound okay on some passages, but quite unpleasant on others.

My premise is that the dynamics (even for a world-class pianist) are mostly random within the dynamic range the composer wrote (ppp, pp, p, mp, mf, etc). That is what I am asking. I am not asking for totally random to where you would see 4 random consecutive notes like: 40, 93, 20, 127. ALL humanization techniques in any music composing software (Sibelius, Finale, etc) keep the randomness to a low (1-5) percentage (+/-) from the original note.

I think what other have expressed, and that I tried to underscore, is that variances in MIDI velocity tend to sound best when in applied inloud-soft or soft-loud patterns. I would venture that Lang-Lang velocities largely follow metrical patterns (or phrasing concepts) and his variances largely follow suit too. A small amount velocity randomization within such patterns workout nicely. And an occasional crazy spike can sound lovely. It's all a matter of experimenting and listening.

Others have discussed with yonah regarding accent patterns appropriate for various meters, and I concur with many of those opinions. It's just that purely randomized velocities rarely sound musical. I can see it as a spice though, when carefully seasoned in. Though personally I've usually abandoned true randomization and have fallen back on accent patterns.

I only wish any of the stringed instruments I play worked adequately as a MIDI controller! Maybe someday.

scorster

In reply to by scorster

@odelphi123, @scorster

This discussion is really interesting and I reckon that the best way to test is for me to add a randomisation option to the accent plugout - so I will. Without a doubt, humans are the best model for breathing life into the written page and it's about dynamics, phrasing, relative velocity of notes in different voices, etc. (I am only talking about solo guitar playing here).

So the best that my plugout could hope to achieve is some level of musicalisation, i.e. a reduction in the mechanical effect of computer playback.

Sibelius, Finale etc. probably have the resources and musical knowledge to apply analytics to a score and program some genuine humanisation.

In reply to by odelphi231

No need to keep Musescore open. You just need the .mscx file.

You may be able to run Musescore Portable at work since it does not install and therefore may be ok with your I.T. department.

Cell(X,Y) simply refers to the cell at Row X, Column Y of the active worksheet.

The plugin could port to HTML and JavaScript which I might do as it looks interesting but my JavaScript is rusty.

In reply to by yonah_ag

Thank you. I will try the portable but since I don't have to have Musescore open, I guess it doesn't matter. I tried it on my work computer with Excel, for some reason the piece I tried didn't work. I tried to do it twice, but it kept giving me a "your score is locked" message. When I looked at the protection for the MSCX tab, it had protection turned on, but I know protection was off when I loaded the score (I checked). I had to reload in order to unlock the score. Maybe that is an Excel thing.
Here is the score I tried to run the plugout on. See if you can get it to work. Thanks

Attachment Size
AUBREY-Part.mscx 180.21 KB

In reply to by odelphi231

"Score is locked" means that the MSCX file has had plugout changes made to it. It cannot then have more plugout changes before going back through Musescore. This is not related to any Excel sheet protection which I only use to prevent accidental edits. The "Stop" button can be used to remove sheet protection and unhide hidden columns.

I'll test your score tomorrow.

In reply to by yonah_ag

@yonah_ag
I took a look at odelphi231's attachment. It lacks a linked TAB staff. (Also an 8va bassa treble clef).

Anyway, I generated a linked TAB staff and, since MuseScore chooses the lowest possible fret position, a question arose:
Since your plugout 'knows' when an open string gets fretted, would it make sense to adjust the TAB as in this image, to improve the result?
Let_ring.png
Compare the first measure of each line (also notice the fretboard diagram) to see the chord shape that's 'grabbed and arpeggiated', which is what a guitarist would do to sound more legato. (The TAB generated fingering breaks the 'let ring' of the second string, yes?.)

In reply to by Jm6stringer

JM, you are a better guitar player than me. I would not have thought about that. I agree the TAB generated fingering does break the "let ring". I guess it would depend on what the player wanted - personal choice.
Also, thanks for reminding me that I did not have a TAB staff. Whoops.

In reply to by yonah_ag

I was trying your plugout with another piece that has arpeggiated (strummed) guitar. I keep getting an error. Something about divide by zero. I thought you told us in your latest version, arpeggiated (strummed) guitar is allowed. Not sure the arpeggio is the reason for the error. Before I hit the Calculate Let Ring button I also changed the Chord gap to 3 just in case that is the reason for the error. Here is the piece if you want to test it.

Attachment Size
Edelweiss-Part.mscx 352.63 KB

In reply to by odelphi231

Thanks, I'll take a look and fix if it's a bug.

I have stated in the plugout's main thread that scores with parts are definitely not supported, (but I haven't checked your score for parts yet), and I don't know how it handles multi instrument scores.

Arpeggios are supported.

The options are worth playing with but shouldn't be able to cause a crash.

In reply to by yonah_ag

Yes, we all know MS does not process TAB staves realistically for a guitar player. That is a bug that I hope gets fixed in MS 4. I realize the fingering is ridiculously unrealistic but I did not adjust the fingering because, for this piece, I didn't really care about the guitar fingering - just the sound. Thank you for any help.

In reply to by odelphi231

This is interesting because it only makes sense logically using 2 voices.

NotPoss.png

In reality the blue note of fret 3 (voice 1) cannot ring for its designated minim because the same fret is played again only a crotchet later (red note) in voice 2. The plugout will detect this and adjust accordingly.

(In fact it will be slightly less than a crotchet later because of the arpeggio stretch.)

The chord change 3-3-3-6 to 3-3-3-1 is a tricky one.

In reply to by yonah_ag

I know you have a lot of work to do and programming plugouts is not your fulltime job, but I do have another programming suggestion. Since you are a guitar player, you probably know optimal fingerings. I wonder if a plugout can be programmed to rearrange MS fingerings into optimal fingerings. My hope is MS4 will fix this.

In reply to by odelphi231

That's a really interesting idea but sounds pretty complicated. MS4 might arrive before I have spare time to even think about such a plugout. I'm still working on a score for upload and I hope to find time this week to add the velocity randomiser to the accent plugout. Then at least the idea can be tested to see if it's of any use.

In reply to by odelphi231

There are indeed multiple ways to finger any chord.

• One of the main concepts in determining fingering is the principle of "least movement", i.e. minimise the hand/finger movement between chords.

• In a fingerpicking arrangement the melody can influence where to play the chords since some positions will allow the melody to sustain more than others. The bass notes also play a part as you have to be able to reach them - or use open strings as much as possible.

• The same note played on different strings has a different tonal quality, (as does plucking closer to the front of the sound hole compared to closer to the saddle), and personal choice could come into this.

• Sometimes you are simply stuck with only 1 version of the chord that makes the song playable.

• Regarding individual chords, as a guide there should be no more than 1 fret difference per finger AND an overall fret span of 3 or 4 frets, e.g. fret 2 to fret 5 would be a 4 fret span. Guitarists with longer fingers and/or good technique would manger a bit more than this. A chord involving fret 1 to fret 8 is a non-starter on a full size guitar.

• Classical guitars have wider necks than steel string and this is another stretch factor. I have particulary short fingers but I play classical guitar and therefore I use a slightly reduced scale model, around 7/8.

(TablEdit has an optimize fingering function so it's clearly possible. Maybe there's an algorithm that Dr. Google knows about.)

In reply to by yonah_ag

yonah_ag said: Regarding individual chords, as a guide there should be no more than 1 fret difference per finger AND an overall fret span of 3 or 4 frets, e.g. fret 2 to fret 5 would be a 4 fret span. Guitarists with longer fingers and/or good technique would manger a bit more than this. A chord involving fret 1 to fret 8 is a non-starter on a full size guitar.

Thank you for those fingering suggestions. I will look at the fingerings for my songs and see what adjustments should be made to make them playable.

In reply to by odelphi231

Bug fixed in v2.3 and uploaded to Onedrive with FileHash2.3 checksum.
https://1drv.ms/f/s!AtZbFhgSR71Nge4jNlYRccgle4fhiA

Here's PRE views of your score before and after plugout. You can see the effect of the strange fingering.

Before:

Before.png

After:

After.png

For reference here are the strings and fingerings that I used in my simple version of Eidelweiss:

https://musescore.com/user/28842914/scores/6895568

Finger colours: 0-Grey, 1-Plum, 2-Blue, 3-Green, 4-Pink

In reply to by yonah_ag

I like your randomisation option. I would only suggest telling us what a "6" means. Is it a number or a % of the original velocity. I believe it should be a percent because applying a 6 to a velocity of 40 is 15%, which is a lot, while applying a 6 to a velocity of 90 is like 7 percent, which isn't that much. Will the randomisation have a min/max level error check? The dynamic level (after randomisation) needs to stay within 1 - 127.
Does the randomisation only apply to a guitar staff or any instrument?

Do you still have an unanswered question? Please log in first to post your question.