NotePerformer 4 Released

this is what I was saying a few days ago. However, the problem can be reduced or even eliminated simply by lengthening the notes in the Key Editor, at any rate with the BBC SO where I’ve been trying it. It’s one step less far than putting a tenuto marking or something. Of course the exact behaviour will depend on what choice of shorter articulations the library offers. I’ve found that purely in that respect, even with the current limitations of non-programmable boundaries, it’s possible to get a somewhat higher rate of the correct shorter articulation in a well-programmed map where there is a wide choice (in libraries like VSL) than NotePerfomer necessarily managed but I’m not underestimating the overall capabilities of these engines - I have been more impressed than I’d expected to be honest so far with my natural scepticism

It could be a bug in our software. Do you have a sound example so that I can be sure what you mean?

actually I wouldn’t make so much of a distinction between a DAW and Dorico which has the majority of DAW functions you need. I’d simply say remove 90% of the problems in using the libraries full stop. As libraries are in the first instance designed around playing live, any sort of recording for later MIDI manipulation shows up the bugs and specific difficulties of the individual ones whatever you use. What is new is NPPE’s attempt to intelligently analyse how the music should be performed by using a wide range of information gathered in the read-ahead and in certain areas with the libraries I’ve tried, the achievement is impressive. As some posts have demonstrated, things are not quite perfect yet but I’m pretty happy with what’s been done so far.


I will try to make a short sample for you.


Hi Arne,

Thank you very much for your time and the detailed reply on my comment! :slight_smile:

Well, obviously the music World heading to a software of new generation DAW-like notation applications like Dorico, MuseScore 4, Overture, the upcoming Encore 6 (those two most probably will fade away from the market), Staffpad… If programs like Sibelius and Finale don’t move forward they will be at risk of loosing their entire market share. This is the future. :slight_smile:
The increasing Dorico user base, and the DAW features in MuseScore 4, show that the notation software isn’t a “Microsoft Word for music” anymore… Yes, there are people who are using those apps just as MS Word, in some cases me, too.
Won’t be good for NP and NPPE if you focus your attention only on the “MS Word” side of the Notation DAWs. That way you may put at risk the future of your product.
Currently you are the one to offer such multi-platform AI solution, but if are neglecting the DAW side, sooner or later another company will come up with a product that covers both aspects of the Notation DAWs. Once such application becomes available, NP will become unnecessary…
I know that your company is a very small, but you could always get into collaboration with companies like Steinberg and the team behind their VST products. Very often different companies collaborate in order to create something innovative and successful. If you can’t afford to hire more developers, the only solution is a collaboration with a bigger company. I suppose Steinberg and Yamaha wouldn’t mind to collaborate with on a new AI player that will support the whole potential of Dorico and possibly Cubase/Nuendo. Why not?! :slight_smile:

Well my point about control was oriented more about dynamic curve - we to decide how quiet is ppp, or how loud is fff… of course the change of the dynamic curve will influence the timber, too…
an attack aspect. Actually some control over these two aspects will provide good amount of personal fingerprint on the playback.

Best regards,
Thurisaz :slight_smile:

Here’s what I’m getting on my system using the Dorico file Dan posted here. For all audio exports, Dorico’s levels are flat. (In preferences.xml, the defaultPluginOutputGain is set to 1) From top to bottom:

  1. NP4 with Dorico’s default compression
  2. NP4 with no compression
  3. NPPE with BBCSO Pro with Dorico’s default compression
  4. NPPE with BBCSO Pro with no compression
  5. Spitfire’s BBCSO Pro Playback Template with Dorico’s default compression
  6. Spitfire’s BBCSO Pro Playback Template with no compression (The Spitfire files are missing Piano and Vocal as well)

#6, the bottom BBCSO Pro file using Spitfire’s Playback Template (not NPs) without compression sounds terrible as it’s very distorted. Here’s the ending:

Even the regular NP4 audio without compression exhibits a bit of clipping on this file though. The level issues are obviously correctable as long as the user is aware, but are the NP4 and the BBCSO Pro NP playback engine designed to be paired with Dorico’s default compression and levels? I think it’s fairly safe to assume the Dorico playback template developed by Spitfire is calibrated for at least Dorico’s compression as it sounds terrible without it. By the looks of what I’m seeing, I’m assuming NP4 and NPPE aren’t actually designed for flat levels and no compression. (Or at least the BBCSO Pro playback engine.) Is it assumed the user will naturally set master levels and compression as needed? Or are they supposed to be “set and forget” with the default levels and compression settings? Just curious if there are intended values that the libraries are calibrated for.

Here’s a Dropbox link to a clip.

this is only the 1st and 2nd violins and violas, from BBCSO-Core.

other than this one artifact, it plays back perfectly, without hiccups or any issues. (the piece is for solo violin (NP3) and string orchestra (instruments from BBCSO-Core).

recording link to Dropbox

Even looking at the waveform on Dropbox as it plays, you can see it’s suddenly dropping off on the last 8th note of every measure. It’s almost as if it isn’t playing that final note.

With just the strings from NP3 it plays smoothly.

I tried it with another passage, in a large orchestral work, with the same type of texture, but in woodwinds, and there didn’t seem to be any problem with the playback there (though the oboe was a TAD scratchy… it was the climax of the piece and the dynamics were VERY loud, though notated dynamics, not adjusted in the Play window)

It may be an NP4 issue. I used NPPE with my Synchron Prime, and in legato eighth-note passages, they are too short, making the passage sound choppy. I did not notice this artifact when using VSL’s Synchron Prime Dorico playback template :thinking:

Wallander probably knows this, but others might not.

I’m not sure how NP deal with it…but for everything else…

Legato has always been weird in Dorico if the library uses a keyswitch/footswitch/channel bounce via expression map.

I.E. A passage of four quarter notes under a slur.
Dorico plays “la la la ta”, where it should be “ta la la la”.

Unless you script up an instrument to deal with it specifically for Dorico, the trigger starts too soon for a phrase, then releases too soon.

Not sure how NP deals with slurs, but over the years I’ve learned to simply strip out any automatic playback settings in expression maps for slur/legato. In Halion I can add my own delay script to hold up the legato triggering event a few ticks. Another work around is to host stuff that can’t be user scripted in something like Bidule or Kushview and delay the trigger there.

If I want scores for an ‘all stock’ Dorico installment…I just impelement legato the old-school General MIDI way, and let Dorico add a little length to such notes for that ‘overlapping/crossfade’ effect between notes. Some libraries hate it (cut out or sound bad) if the same note is repeated and there is overlap…but for 99% of the stuff I’ve ever tired/used…old school General MIDI MIDI legato (overlapping notes a little) is alrite.

One of the first things I do after a fresh Dorico install is go into the HSO String expression maps and DELETE that legato node! I’ll then go into general playback settings and instruct dorico to add a few ms to the length of notes marked legato. Out of the box…the setup wrecks phrasing pretty bad in my opinion (anything with strings and the default slur or slur-style phrasing marks, the ‘legato’ key switch is a different bowing speed, and the way it’s implemented is poor). Take the legato node out, and scores involving strings already sound 95% better.

There may be some natural volume discrepancy between NP and NPPE, but what users have shown is too much, as is the case here. I need to look at adding another layer of correction. There shouldn’t be this much difference in volume.

It’s natural for the Spitfire template to have a different level because it’s unrelated.

Unfortunately, it’s impossible with a set-and-forget setting for output levels. It’s not ensemble-agnostic, but a full orchestra is much louder than a chamber group. In a production environment, you would normally export the sound with a decent amount of headroom (no overshooting) and use a wave editor with tools (compressors and limiters) to bring the volume to the desired comfort level. Those tools will duck the signal in case it overshoots momentarily. If you only normalize the wav file with no compression or limiting, it will be much lower in volume than a CD or a mp3 from iTunes.

With that said, we’ve taken steps to make NotePerformer a decent starting point, so you can often export it directly. But it seems that NPPE is a bit louder, which is unintentional.


I’m not sure this affects our program. It sounds like something that could be part of a sound library, e.g. HSO.

If it does affect our program, I’m happy to see an audio/score example.

If you strip out all legato from the NP expression map, all notes will be detached.

I don’t doubt the market will change in various ways. It’s unavoidable and nothing I will lose sleep over. It’s just the way of life, and who knows what role software like our’s will play in one-two decade. Before solving those problems, you can type words into a browser A.I. which generates a symphonic work to your instructions, or upload a crude song and get a cover in any possible music style.

I don’t have any ambitions for a big team or going into large-scale collaborations. I’m happily running a small business where I can make the rules and do interesting things. I enjoy the creative process but not the attention it brings, so I like it this way. Besides, big teams have creative limitations, and it’s well-established that they’re better suited for recycling others’ ideas than thinking outside the box. It’s not as simple as adding two teams and having the best of both worlds, but it can also be the opposite.

Sample libraries don’t have freeform dynamic curves or timbre curves. They have 2-4 layers of samples and volume scaling. To some extent, you’re the victim of limitations in NPPE that we may need to improve, to another extent you’re the victims of limitations in a sample library. If you want that level of control, our built-in sounds are still there.

Regarding dynamic range, we don’t present such features because we paint ourselves into a corner if users can access features we want to control internally and have a chance of improving or updating. If you want more control over dynamics, there’s a lane for that in Play view where you can draw exactly the dynamics you want.


The opposite is true: NP4 has levelled the playing field, allowing Finale, Sibelius and Dorico to produce the same excellent audio output; so anyone pointing to the audio/midi limitations of Sibelius and Finale will just be shown NP4 as ‘the solution’.

Encore 6 is still scheduled for release in “Late Fall 2022”, so… any day now…

1 Like

It effects pretty much ANY library that triggers a different sound for legato.

The trigger comes at the same time as the first note living under a slur, or some ticks ‘before’ the note. The trigger remains until the end of the ‘next to last’ note in the slurred phrase.

So, if a library isn’t scripted to understand this, it’ll give weird phrasing that doesn’t make sense in the context of most music.

In the case of HALion Symphonic Orchestra (HSO), the legato sound Dorico picks ‘stock out of the box’ is even more strange, as it’s not at the same bow speed as the regular arco sound. It’s not typically what the average composer means to hear when drawing a slur mark over some notes! Slur does NOT mean ‘slow down the bow speed’.

I have 3 different libraries here (plus ZEN, Fantom, and some other keyboards and tone modules), and I have to use hacks to make legato phrasing work, or just remove the legato node all together.

Hack 1: For HSO. I built my own legato sound (modeled with the same sample for arco, but the sound begins at a later point in the sample, and there is a cross fade from the previous note by extending its release time). I have a lua script that ‘delays’ the legato trigger (A CC68 pedal) by a few milliseconds. This way, legato phrases triggered by the expression map make sense again.

  1. Garritan, and East West (Opus, as well as Classic Gold)…
    These also need the legato trigger to come AFTER the first note in a legato phrase sounds, and stay active until after the last note in the phrase begins…then be released at some point before that lost note ends. Since users cannot script either of these libraries on their own to make this happen…I use Bidule to capture the CC and/or key-switch event for the legato pedal and delay it a few milliseconds. I can’t have Dorico manage channel bounces for legato on his own or it’s a mess. Again, Bidule (and probably Kushview) can fix that by translating some kind of event to a channel bounce internally if one needs to go that route with a sample library.

  2. Just remove the legato node from the expression map all together. Go into general playback settings, and make legato notes slightly longer in duration (the old General MIDI way). Some libraries also have monophonic patches that give special legato/portamento handling to overlapping notes (if you set them to do so).

It’s like this…
Without such hacks…the phrases are a bit backwards.
Consider a trumpet playing a phrase of several notes tied together by a slur. He should TONGUE on the first note of the phrase (ta), then slur through the rest of the phrase. So it sounds like…
Ta la la la la la

Instead, Dorico interprets it as…
la la la la la Ta

Or in the case of strings…
First note of the phrase should have the bite/attack clarifying it is the first note of the phrase…then the subsequent notes ‘skip’ that attack phase, as if the bow is already at full speed, the player is simply moving fingers on the fretboard, or rolling to a different string with the bow already at full speed/normal pressure.

Currently, the legato trigger comes at the SAME TIME as the first note with a slur over it. The trigger to end the legato happens at the same time (or before if you ask Dorico to put it some ticks before the note) as the last note of the slurred passage, so it gets the improper interpretation of a ‘full attack’.

Not good.

Dorico will allow you to slide an expression map playing technique some ticks ‘earlier’ in time, but in this case, we need to be able to move it ‘later’ in time. Until this happens, legato doesn’t work as intended in quite a lot of libraries…as well as tone modules/keyboards like Montage, Fantom, K2700, Kronos, etc…

There are some other possible hacks for Dorico to get around this issue…but they all require several steps. I.E. Making new player techniques that don’t impact the expression map at all, using those for the ‘visual’ aspect, then drawing in the default playback slur a beat later, then ‘hiding it’. Etc. Royal pain in the rear.

For me it’s not a huge deal, since I can use Lua in HALion, or Bidule to ‘fix’ the problem. Still, it’d be nice if someday we got the ability to put ‘slur, legato, and portamento’ playing techniques so they trigger some ticks ‘after’ the position on the score. They also need to be able to remain ‘open’ (stay in the legato mode) over the last note of that phrase. Again, simply delaying the legato trigger event a few ticks usually gets the job done.

For portamento on some libraries, it might be best to just leave it unbinded in the expression maps, and dot it on a controller lane.

In Big Band libraries…the whole legato thing is even more important I think. So many of these really need more control over where a player technique triggers something. Dealing with slurs, judicious amounts of portamento, wahwah and other fancy mutes, doits, falls, glisses…yeah, thank goodness I have Bidule! It’d be a NIGHTMARE trying to use Dorico with Garritan JABB2 without smoothing out these issues in something like Bidule.

I want to understand what you mean but I think I need an audio example.

When NPPE plays a legato phrase from a library, the first note will be tongued if that’s how the sound was articulated when it was recorded. It’s not something we can change, since it’s a phrase/musical recording.

Here is audio for the huge difference in legato handling I mentioned above.
NP4 native:


1 Like

Wow, this is a nice comparison.
BBCSO really seems to not articulate the first note of each slur.

A lot of musicians play the above passage as though there were one slur over all the notes. That’s not good!

Noticeable to me are the smooth transitions between sections of slurred notes in NP4 vs. extremely shortened last notes in each of the NPPE groupings. Jarring. I wish Dorico had an option to lessen the clipping of final notes in slurred phrases.


Many MIDI tone modules and sample libraries use a CC pedal (Usually CC68) to engage/disengage legato. It changes the ‘attack’ phase of the sound, and creates a kind of cross fade effect into the subsequent note.

Others might simply change to a whole new patch/preset/program/layer upon receiving a key switch.

Some libraries, like East West stuff, can do BOTH at the same time…and different values with that CC pedal can offer ‘variations’ on the legato effect in real time.

Some libraries even somewhat combine legato and portamento with the same controller. I.E. Garritan…CC68 removes the ‘attack phase’, ‘crossfades into the next note’, and allows for an optional portamento effect if a second parameter is set to a value ‘above zero’.

Consider this phrase.

Think of all notes at the beginning of a slurred group as the ‘Ta’ articulation. All other notes in the group as a softer ‘la’ articulation.

Consider the first three notes. They should sound like:
Ta, la, la
The trumpeter literally articulates those consonant/vowel movements of the mouth behind a buzz into the mouthpiece (without using the vocal chords of course).

The black carrots designate where Dorico sends the CC68 pedal to engage and release the legato/slur pedal.

The red carrots are where the pedal on/off events ‘should be’. (Or really…anytime AFTER that note has begun playing…thus the red lines showing it can fall anywhere in that range)

Another example. You want to have a trumpet player start on concert Bb and slur up the scale.
First play the Bb in with the ‘normal’ articulation (full tonguing). Engage the legato pedal BEFORE the next note sound, and HOLD IT DOWN up the rest of the scale. Do not let go of the pedal until AFTER the beginning of the last note has sounded. Now that the pedal is lifted…the instrument is ‘ready’ to play the full tongue articulation again.

Here I use Bidule to capture and delay the CC68 that Dorico sends for a few milliseconds before it gets passed on to a Garritan/JABB2 plugin instance. It is what it SHOULD sound like.

Notice that we get a ‘tongue’ articulation on the first note of slurred phrases. Throughout the rest of the phrase the trumpet uses a lighter da/la sort of attack/articulation, or no tongue at all.

Here is what Dorico does with it without the Bidule/delay hack.
Instead of sounding:
Ta, la, la
It is playing
la, la, Ta

The first notes of each slur group are not articulated with the full tongue. The last note included in slur groups is getting tongued when it should not be.

And here it again as it should be with a little portamento applied as well (to clarify the phrasing). This isn’t a common thing to do for brass, but it is often a desired effect for fretless string instruments to have a bit of ‘pitch-glide’ between notes when slurring.

And again, with a little portamento without hacking a correction to ‘delay’ that legato/portamento trigger. Dorico even causes an unwanted artifact here because it is stomping that legato pedal too soon (it should wait until AFTER that first note in the slur phrase is sounding…as we still want the ‘attack’, but also want the 'crossfade into the next note which will also subsequently play with less attack)!

This ‘unwanted’ legato/portamento behavior would also occur if one were using a key-switched articulation in lieu of a CC event. Or if channel bouncing, or whatever. You typically do NOT want the ‘legato/portamento’ effects applied to the first note in the passage; however, you DO want it to follow through and stay in effect for the beginning of last note in the slurred group, yet release shortly before the next note/phrase begins.

For further comparisons, pop open Dorico Overture. The phrasing is all backwards ‘sounding’ from what is WRITTEN on the page.

Here is a rendering of Dorico playing the Dorico Overture ‘out of the box’.

This is it again with tweaked out HSO sounds (LUA script delays legato trigger 10ms, moves the starting point of the sample to a later point for the next note, while extending release time of previous note…keeps those settings until pedal is let up). Proper phrasing.

The altered HSO presents aren’t ‘great’…I just roughed in a bit for ‘proof of concept’ (no real time spent balancing and perfecting the instruments, or the score itself). If anyone wants to take a peek at these HSO preset edits…here they are (along with some sample scores that piddle with partial expression maps for them):

These are just HALion/Sonic ‘presets’, some scripts, and a new Macro Editor UI in a VSTsound wrapper. Just download and ‘double click’ to install. If you want them gone later…use the Steinberg Library utility to remove them. No I never finished modeling all of those articulations listed. The marcato is atrocious (maybe I’ll get around to fixing it someday).

You do need HALion Symphonic orchestra installed, with a proper Dorico Pro or HSO key in place for it to work.
They will work in HSSE 3, Sonic 3, Sonic 7, HALion 6, HALion 7, etc. Nothing is ‘locked down’ about them so anyone with full HALion can dive in to see exactly what I’ve done to it.