musescore / MuseScore

MuseScore is an open source and free music notation software. For support, contribution, bug reports, visit MuseScore.org. Fork and make pull requests!
https://musescore.org
Other
12.19k stars 2.64k forks source link

Updated Muse Strings playing back harmonics in the wrong/low octave #17483

Open cunningar0807 opened 1 year ago

cunningar0807 commented 1 year ago

Issue type

Muse Sounds bug

Bug description

23 minutes ago So I've recently updated Muse Sounds in the Muse Hub a couple days ago. Now, I think the sounds are even better than before!

However, when I opened up the MuseScore Demo file of "Searching Four", I played it back, and realized the harmonics in the violins were an octave lower than what they previously sounded before the update.

What was the cause of the harmonics sounds to sound like that in the low octave anyway?

I've attached a zip file of the complete Searching Four audio mockup that I've rendered myself through the updated Muse Sounds. It includes the low octave violin harmonics in the beginning and towards the end.

Searching Four.mp3.zip

There's no way a violinist, including myself, would play a harmonic at a concert C#5 like it does towards the end of the piece.

Steps to reproduce

  1. Go to Muse Hub
  2. Download the Searching Four .mscz file
  3. Then open it up in MuseScore and see if you think I'm right about the wrong violin harmonics

Screenshots/Screen recordings

No response

MuseScore Version

4.0.2

Regression

I don't know

Operating system

Mac OS Monterey

Additional context

No response

Fristover commented 1 year ago

Harmonics behavior changed to be consistent across all string instruments, see #16000 for more insight.

It's still not perfect but now you get the same result on all string instruments instead of whatever happened before

RhinoHaggis commented 3 weeks ago

Unfortunately the file added by the OP is an MP3, so there's no way to check the notation against the playback. I think there were two feature requests in the original report (#16000) that may have obscured the path forward for the violin family. I think false harmonics depends first on a closed system for natural harmonics, which will require two noteheads for each note.

Natural harmonic notation in the violin family (excluding the bass): Harmonics are notated in-position: the notehead sits at the finger position (node) that produces the harmonic. Now consider this system:

  1. Halfway point of the string: (unaltered Oval notehead) + °
  2. Any other harmonic: (open Diamond)
  3. Unless stated otherwise, Diamonds are always played on the lower (neck) side of the string. (Any harmonic higher than the halfway point is a duplicate of an identical harmonic in a lower, more natural position)

This system uniquely determines which natural harmonic is meant, with a single notehead. Why? Because the strings are tuned a 5th apart (and not less). For example, on the C string of the cello, there are natural harmonics at the finger positions M3, P4, P5, M6, 8va (any higher harmonics are just mirrors of these) Writing these noteheads in position, only the octave could also be a harmonic on another string, but we have already agreed to notate this harmonic with a circular head, and a °.

Implementation: While it would be possible to reproduce this system, it leaves two problems unsolved:

  1. when a higher harmonic is expressly stated or implied by the hand position
  2. false harmonics ...because these cases requires clarification of the fundamental. The problem at the machine is this: the notation is simple because some information has been hidden. For a machine to understand, the hidden information must be exposed and clarified.

The solution: A closed system for natural harmonics using diamond notation has two noteheads:

  1. the Fundamental (an open string)
  2. The Harmonic : a diamond at the finger position Sounding pitch is always perfectly defined for any spacing between strings. The system is extensible to false harmonics which are defined in the same way.

At first, the user would have to hide a lot of noteheads and stems to make it look familiar. A per-harmonic "hide fundamental" would be nice. Also, you'd have to add the °-notation. You could choose the above system ( ° + oval always refers to the halfway point), to avoid a new can of worms. It won't make everyone happy, but it's complete.

From there you could decide how to implement notation variants. The conventional notation at the violin/viola/cello would then be a UI problem and not a sounding-pitch or consistency problem. One notehead for the natural harmonics, and some way of exposing and redefining the fundamental when necessary, and adding false harmonics. Internally, MuseScore would always assign a fundamental.

RhinoHaggis commented 3 weeks ago

sorry there was no need for that to lack visuals. For the non-string players, here are the natural harmonics as commonly written. (In a score, the fundamental in parentheses is omitted). Cello harmonics

None of the diamonds overlap. Where there is overlap, the two harmonics are already distinguished by the notation.

So, the D above middle C is played -On the D string if the notehead is oval with a degree symbol. (And sounds at-pitch: one octave above the D string) -On the A string if the notehead is an (open) diamond.
(And sounds two octaves above the A-string)