Triplet Detection

I am a long time Cubase user and now I’m trying the Dorico Elements demo. I’m working in Cubase and then importing the MIDI file into Dorico. Like Cubase, Dorico does not automatically detect which notes are triplets nor time signature changes. This is something I will need to manually correct. There is a certain amount of proficiency required both with the program and music literacy in general. Although it got the majority of the notation spot-on, not all. I assume this might be difficult for programmers to fix but it would be the holy grail for those of us who are not so literate. I know I’m in the minority here but I am just throwing my wish out there.

I know there are quite a few plans for improved MIDI import. I imagine triplet detection is on the short list!

Dorico will pick up time signature changes if they are present in the MIDI file. It won’t be able to infer them if they are missing or if the file was recorded free-time (very few applications are able to do this. We hope we’ll be able to at some point in the future). We’re actively working on improving the import of triplets, and internally we’ve got something that’s much improved from the state in 2.1. If you have a MIDI file that doesn’t import well then I will be very glad to receive it to improve our detection. You can mail me at p dot walmsley at

If you’re working on triplet detection, that is wonderful news. I don’t think it has been tackled by any company. Also it would be nice if Cubase Quantize also detected triplets. It’s my only request really.

FWIW, Finale does provide an option for “mixed rhythms” that includes triplet detection.

My experience has been that Finale’s import options are fairly robust, but the actual result is rather underwhelming.

Here’s the results from loading a couple of my MIDI test files. Just dropped them straight into Dorico with no editing. The big challenge with tuplets though is that with real-world MIDI files (or live MIDI input), the performer’s natural timing variations can make it hard to reliably detect what was really intended. If you have tuplets that have already been quantized in a DAW then they usually import quite reliably. If they’re recorded in the MIDI file with loose timing or complex rhythms within the tuplet then you may not always get the result you were expecting.

Okay BUT

I make MIDI improvisational recordings which are up to an hour long. You expect me to remember where they all were???

You’re experiment does not take into account how I work. Perhaps the target audience is not me I concede BUT I am part of ‘the long tail’. That means I have given Steinberg multiple thousands of dollars since the Atari. People like me DO COUNT!

No, I would say that is not the primary functionality of Dorico. I think it would be impossible for you to find any notation program that would give you what you want from an hour-long free improv using MIDI. As you know, Dorico is a program focused on written notation, and not a DAW.

I’m trying to estimate how many measures one might end up with from an hour-long MIDI input.

Okay true but if it’s not your job and the guys at Cubase aren’t implementing it, where do I go to complain? There ought to be a synergy there at least, some way of integrating the two programs beyond the obvious.

It’s not a new or unique request. In fact, it has been discussed at great length.

You go to the people who created the unusable data file. In this case, the Cubase guys.

But I don’t expect you would get too much response for asking them (or the developers of Logic, Reaper, or whatever, if you weren’t using Cubase) to implement something close to impossible. Maybe you should improvise with a click track, if you want to create notation later on.

Paul, when I input triplets via live midi record (“detect triplets” is on in prefs), they playback fine but aren’t notated as triplets. What am I missing? Thanks
triplets shoudl be on beat 2.png

I can’t tell much without seeing the file, but try selecting the notes and choose Edit → Requantize, and try out some different quantize options.

Setting latency compensation to 30ms did it :slight_smile: Thanks for the help Paul!