NotePerformer non-deterministic?

Yeah, it’s an excellent suggestion, but I’m not sure how I’d draw the company’s attention to this thread, especially since I’ve never received a reply from them re: inquiries about other topics. Maybe my email system is at fault – in the past, my email provider’s third-party blacklists have erroneously, and without notification, prevented me from exchanging messages with certain legitimate domains. Regardless, I don’t seem to have a way to directly communicate with the developer. But the issue is all about reasonable expectations.

I’ll have to disagree with you about whether this is a bug that makes NP3 nondeterministic. A threshold issus is that there’s no warning that playback is a function of “environment” – nor which factors go into defining such an environment.

When you play a MIDI clip, using the same virtual instruments or sound banks, the same playback software, and the same hardware platform, the format ensures that you ALWAYS hear the same rendered output. This is an industry convention, as well as a fundamental guarantee of the MIDI platform. I know of no other MIDI implementation that does not make this guarantee. If NotePerformer does not, the developers need to rectify the problem in order to retain compatibility with industry standards or, barring that, AT LEAST warn users that their product behaves in this unexpected, non-standard manner.

I don’t mean to beat this into the ground but when I think about how many days I’ve wasted trying to orchestrate a large ensemble of instruments to in aggregate produce a particular musical effect – without realizing that the reason I had to go back and forth so many times is because the audio output can actually change if I begin playback from a different note – it is a bit infuriating.

It would change with live players as well.

Derek: Not sure why that would be relevant. Think about it.

Yet clearly you do intend to beat it into the ground. I agree with @Derrek - one of the joys of live performance is it’s non-deterministic nature. There are plenty of non-deterministic VSTs. If deterministic control is important for you, you will just have to restrict yourself to them.

I’d appreciate a reference to where you think this guarantee is made. MIDI is just a format for data transfer, with no guarantees how instruments might interpret that data and turn it into sound.

Oh look, a troll trying to start a pissing contest. And I recognize the username. “Janus” has trolled me before on this forum, usually with a classic straw-man attack that rebuts something I didn’t say. My time is too valuable to take the bait.

As in the past, I’ll expect one more sarcastic “Thank you for insulting me online – I was just asking innocent questions / but you’re wrong, wrong, wrong” replies, to which I won’t reply. And hopefully that will be the end of it. Please, please, please in the future resist the temptation to interrupt with your own agenda when I’m speaking with knowledgeable people who are honestly trying to help diagnose a subtle problem.

Erm? I quoted your statements with which I disagreed. If you didn’t say it, I couldn’t quote it!

Hi, cundare.

I’m sorry, but this statement is just wrong. As @Janus said, MIDI is just a standard for transmitting musical data. It does not say at all what the receiver of the data should do with them. And if the receiving “instrument” is an A.I. that tries to interpret the data in a way like humans would, it is totally in their space to make choices about hot the result may differ from playback to playback.

I do really understand your frustration, but please point it to the lack of documentation at NP’s side instead of us pointing out some misunderstandings (for lack of a better word, I’m not an English native) on your side.

5 Likes

Respectfully, my statement is absolutely correct, but please try to read carefully to understand what I’m saying. Stating that MIDI is a “data transfer protocol” is true, but not germane. Despite working with, and writing about, computerized electronic music for nearly 50 years (who remembers the DEC PDP-8?), I can’t think of one instance when rendering the same MIDI data twice using the same soundbanks/virtual instruments/synthesizer, on the same hardware/software computer platform would produce different audio. See, e.g., Dorico’s native Halion sound bank.

A virtual instrument like NP that apparently produces different audio from the same MIDI data – even when all other elements in the workflow are held constant – is a problem for those whose final work is the audio output. NotePerformer’s “AI-based” methodology (and the “AI” element may be a bit of hand-waving, but that’s a topic for another day) promised to produce human-sounding MIDI performances out-of-the-box, rather than the lifeless, mechanical recitations we’re used to. And to its credit, NP goes a long way toward achieving that goal. It’s a brilliant piece of software.

However, this approach casts the resulting audio rendering in a more important role, making it a more worthy end in itself. That’s why compromising the integrity of such a rendering, by removing guarantees that the same MIDI data will be interpreted by the virtual instrument in a consistent, predictable manner, is such a problem.

To understand a little better what I’m saying, consider my use case, where my rendered audio output is my musical work product. Here, NotePerformer is not merely a “receiving instrument,” analogous to a live peformer, from the perspective of the composer.

The difference is that a MIDI score and a printed score hold different parameters constant. The latter specifies pitches and general durations, dynamics, articulations, etc. It’s designed to simply guide a performer through a piece and, hopefully, tell the performer enough about what the composer was trying to say to allow the performer to interpret the content in an appropriate way.

A MIDI composition in such a context is distinguishable. The score is a mere set of guidelines that set boundaries on a live player’s interpretation. Rendered MIDI output is qualitatively different, a self-contained finished work to be experienced by a listener, more like a recording of a live performance than to a printed score. The live performance is generated from information contained in the written score. The MIDI rendering, on the other hand, is generated from stored MIDI data – fixed pitches, durations, volume levels, etc. With MIDI, a composer expects, based on prior experience with the MIDI protocol, to have complete control over the rendered audio – in effect, the composer (facilitated by his software tools) is also the live performer and the recording engineer. No further downstream interpretation is necessary – or desirable.

So, within the live performer / MIDI rendering analogy, what NP is doing is akin to a live conductor deciding to ignore the dynamics markings in a traditional score – and only sometimes, depending on how much of that score he is conducting. Maybe the “Ode to Joy” in Beethoven’s Ninth would sometimes have dynamics in accordance with the score’s guidelines – louder than the preceding material – but at other times, based on the inscrutable whim of the conductor, it would be played softer. Yikes!

I hope we’re getting in sync?. I understand that this is a topic upon which reasonable minds may differ, as my colleagues in the legal profession are wont to say. And the goal of this thread was to figure out why NotePerformer was creating audio output that did not sound like what I heard when editing. I think we’ve addressed that. This spinoff discussion is interesting, but if anybody wants to pursue it further, I suggest starting a new thread. Seriously, despite being sucked back in to this conversation several times, I’ll be moving on. I’ve said everything I wanted to say.

Thank you to everybody for contributing to this unique conversation. I hope the NotePerformer developer is able to read and consider some of these points. And to be clear, despite being appalled by the problem we’ve been discussing, I am a huge NP fan. I see this product as being a game-changer and applaud the developer’s efforts. I just hope that something like the feature I suggested will be implemented in a future revision. Until then, I’ll just have to be careful about listening to every NP-generated audio recording in detail before distributing it.

A problem for you; a feature for me.

4 Likes

I can’t think of one instance when rendering the same MIDI data twice using the same soundbanks/virtual instruments/synthesizer, on the same hardware/software computer platform would produce different audio. <

There’s mostly a lot of randomness in virtual instruments. Round robin samples avoid machine gun effects and are programmed to play different samples each time on repetitions. There are free running LFO modulations in synths or modeled instruments that depend on the start time of playback/rendering and i.e. might result in different vibrato phases.
This happens in most instruments and even differently in different dynamic layers of single instruments. That adds up to a lot of randomness. It’s a bit like taking a bunch of photo shots of a clock shop. Even if you take two photos on exactly the same time every day they probably will look different: the pendulum angles differ, some clocks are late…

It can be problematic if you want to recreate a special version. We are lucky that computers are patient. Render a few versions and choose the best.

6 Likes

I finally got a reply from NotePerformer and Alex assured me that – despite the ramblings on this thread – this is definitely a bug, not a feature. According to him, NP is, as one would expect, intended to be deterministic; that is, to always produce identical output from identical input.

Alex asked me for specific audio examples, and their associated Dorico projects, that illustrate the discrepancies I described. Unfortunately, so much time has passed since I first reported this problem that I long ago discarded any examples I’d accumulated along the way. Because I’m still working on this 10-piece, 16-minute composition, I’d at this point need to render a set of 5-15-minute files and then compare each one bar-by-bar, instrument-by-instrument, listening for unpredictable, intermittent anomalies. Not a quick or easy task.

Other posters on this thread have reported problems similar to mine. Does anybody have samples of the problem that they could post or email, along with the Dorico project in which the anomalies occurred?

This is obviously a serious problem for composers like me, whose final work product, as well as interim versions shared with collaborators, are rendered audio files. If a composer can’t be sure that a rendered arrangement matches what he or she hears when working on the score, the system doesn’t work. And even if I switched to a different virtual instrument, even one as fine as Halion, at this point, doing so would require re-orchestrating all the content already created with NotePerformer – an enormous undertaking, considering that, e.g., my current composition probably contains more than 20,000 notes.

Thanks for any examples anyone can provide.

I don’t have any saved audio files that demonstrate the differences from one playback to another that many, including myself, reported earlier in this thread. However, as Arne Wallander has promised the next major version of NotePerformer will be released in the first quarter of this year, it might be worthwhile waiting to see if NP4 is “deterministic” as you want and the developer intends.

Mike:

The NP rep was concerned about what I’m seeing and asked me to provide some examples they could work with. Seems unlikely that the problem would be solved in NP4 if the company wasn’t even aware of it, but as I said, the rep mentioned that NP3 is absolutely NOT intended to behave this way – which is only common sense. So I’m hoping that if I can give them something to work with, that they’ll be able to diagnose and solve the problem. But things will go more quickly if I can come up with hard examples.

Fair enough. I hope somebody can provide the files you are looking for.

Thanks for responding, Mike. Maybe I can be a good citizen and generate some of my own files. Now I wish I’d uploaded to this thread the examples that came up back when I first reported the issue.

It’s starting to look now like the problem is at least partially related to sample rate of exported audio. The issues vanish at 44Kbps.