Note Names in Dorico

Hello
I have written this post here:

Maybe it’s on the wrong place (feature request). I should have published it probably better under finale-crossgrade.

To illustrate my problem/wish even more clearly, I have uploaded two PDF files here.
For me, this function is really very important.
Dorico.pdf (49,9 KB)
Finale - Soprano.pdf (106,3 KB)
As you can see, the note names in the note heads are too small to bee reading
I hope, anybody has an idea about this.

Welcome to the forum @patbe60 - you’ve posted in the right place, it’s just that you first posted towards the end of a Friday afternoon here in the UK where most of the Dorico team is based, and given the high level of forum traffic at the moment, someone simply hasn’t had a chance to reply yet.

We do ask that posters be patient, and don’t bump threads - especially not so soon after first posting!

As to your request - there isn’t an automatic way of doing this in Dorico, but you could use the lyric function to display note names in rows (ie verses).

1 Like

Thanks for your reply and sorry for my impatience.
Using the lyric functions is not a solution. In Finale it was possible to do this with only three mouse clicks. Imagine to do this in a orchestral score with 6 parts of 10 pages each using lyrics and as soon as it has chords using different verses. This would take hours.
May be this can be a solution to prepare worksheets for school.

I hope you understand that it is very hard to believe that Steinberg and the developer of Dorico probably makes no effort in this direction. Maybe it also has something to do with the fact that probably only a few people need such a function.

Anyway, thanks again for your suggestion.

What you’ve produced in Finale looks like a great use case for lyrics. But are you actually looking for a solution that generates all the note names automatically for you?

I think you’re probably right, it’s quite a specialised requirement.

Hi. Only a normal user here. Agree it would take a lot of time to this in a full arrangement. At the same time, after close to 50 years of performances I have never seen this before. Is it used in some special type of music or part of the world? I believe this probably will be added some time in the future.

This is for music education …

I have created a little movie to show how it works in Finale.
https://www.dropbox.com/scl/fi/efjyi1tn51ta2qpjjib62/Finale_Note_Names.mp4?rlkey=6qa6ubhl79ajym5sy18ifj98a&st=0tpvn3t8&dl=0
And yes, I use for music education.
But it’s also a part of my profession: I’m writing orchestral arrangements , choir arrangements and also steelband arrangements. And for this last part I absolutely need this function. Many people who play steelpan here in Switzerland are unwilling or unable to read music score. They need note names.
I have already started writing choir arrangements and small orchestral scores with Dorico and I feel very comfortable with it. But I miss the note name function and this prevents me from writing steelband arrangements with Dorico as well.

This could be a challenge for somebody who speaks Lua (Dorico’s scripting language) and is willing to write a script.

Unfortunately you can’t do this kind of thing with Dorico’s current scripting capabilities, because scripts cannot interrogate the music in order to e.g. create the right text item. There’s really no good way to automate this kind of thing at the moment.

@dspreadbury I understand, but if it was possible to read the pitches you could write them into a text file – or even put them directly on the clipboard – to paste them into the project as lyrics. Could be better than do the whole stuff manually.

I have a crazy idea, and it might seem a bit bonkers or may not quite work out.

If you use the filter options to filter by pitch, you might be able to use that to select all C’s for instance and then you could apply the same function to all C’s in the piece simultaneously.

It doesn’t seem like this would work for mass assigning lyrics or playing techniques as far as I can tell (for playing techniques it seems to want to “extend” it instead of adding the technique in multiple places), but it seems like it does work for assigning fingerings, and those fingerings can be placed above or below the staff. If there were enough fingerings that you could edit the glyphs so that 1 was A, 2 was B, etc. you might have enough. If you aren’t using the fingering system for something else, that might work.

That is exactly what Daniel just said Dorico cannot do.


I suppose a crafty Python script could take a MusicXML file, add the letters as lyrics, and write a new file for import. (But I have not written such code.)

Actually, this does work with playing techniques, so you can make playing techniques for each note letter. The trick is that you have to link the playing technique to a playback technique of type “attribute” rather than one of type “direction” - otherwise it doesn’t add it to all the notes individually.

So it is possible to do and may be possible to script by using a method like this:

Select all music
Filter to just C naturals
Apply playing technique “C” to those notes

Select all music
Filter to just B naturals
Apply playing technique"B" (or “H” depending on region) to those notes

etc.

Maybe an AI could write the code these days?

This is very interesting. I did try it and it works.
But I have a question:
Do I have to write for each note a playing technique? e.g. D, D sharp (D#) D flat (Db)? Or is it possible to write all notes in one playing technique?
Can this possibly be automated with just a few mouse clicks?

Yet another quirky idea…

Export as XML.
Create a program, perhaps in Python, that reads the XML and adds lyric with the note names.
Import into Dorico.

Snippet from XML-file. The part the program would add the lyrics part.

  <note>
    <pitch>
      <step>D</step>
      <octave>5</octave>
    </pitch>
    <duration>4</duration>
    <voice>1</voice>
    <type>quarter</type>
    <stem>down</stem>
    <staff>1</staff>
    <lyric number="1" placement="below" default-y="-76.875" name="verse">*
     <syllabic>single</syllabic>
      <text>D</text>
    </lyric>
  </note>

I just played around with this a little bit and it actually seems to work. Below is an XSLT script that reads a MusicXML file and creates a new one where lyrics with the note names are added. It skips notes that have already lyrics assigned. It probably works only with simple scores.

mxml-pitches.zip (704 Bytes)

2 Likes

It looks great. But I don’t have any idea how to use the sript after exporting the mxml file.
Can you tell me how to use this?

Unfortunately, that’s a bit challenging. You need to install an XSLT processor first, e.g. Saxon, which then must be called from the command-line because it doesn’t come with a graphical user interface. The overall procedure looks like this:

  1. Export the Dorico document as MusicXML file, e.g. as myscore.musicxml.
  2. Execute the script with
    transform -xsl:mxml-pitches.xsl myscore.musicxml >myscore-new.xml from the command-line
  3. Open myscore-new.xml in Dorico

It’s just a quick hack to check whether it works and not really user-friendly.

1 Like

You would have to make a playing technique for every single one.

It can probably be automated, yes. There is a macro recorder in Dorico, in the scripts menu. The macro script it generates is an lua script that can also be edited by hand in many cases. If you record a macro of doing a few of them, and record it in the macro recorder. Just make sure you don’t click on extra things while it is recording or you might add unnecessary garbage to the script. When it is done recording, you can view and edit the script that it has produced. You should be able to see the steps it has carried out to select-all, then filter to a particular note, then apply the playing technique to that note. So you can simply duplicate those steps in the text editor and change the note and playing technique it is applying for each one.

After it is done, you should end up with a macro that you could run and would go through and repeat the process for all notes in quick succession.

I can’t promise it will work because sometimes I record macros expecting them to work and they do not always, but there is a decent chance this will.