I have encountered a situation where the expression map seems to be affected by nearby cc64 sustain events. I have stripped down some files to illustrate, one has one bar, and the other has two.
Expression Map not working.cpr (468.5 KB)
Expression Map working.cpr (467.4 KB)
In “Expression Map Working.cpr”, everything is fine. The staccato expression can clearly be heard reducing the length of the notes to 35% as intended.
Meanwhile “Expression Map not working.cpr” has an additional bar before the two staccato notes, and some cc64 messages.
Obviously, if the sustain is on when you hit a staccato note, the sustain will override the staccato and the note will ring. However, in the file you will see that cc64 sets to 0 at 184.108.40.206, while the staccato notes do not sound until 2.3.1. I would therefore expect the expression map to make the notes play staccato as intended. On my system at least, this does not happen.
Worse in fact, the supposedly staccato notes sound as if they are sustained long after they have been turned off. It’s as if cc64 has been set to 127 again, but as you can see from the list editor the last cc64 message is to 0 at 220.127.116.11.
If I delete all cc64 messages the staccato works properly.
If I start playback at a time after 18.104.22.168 but before 2.3.1 then the staccato works properly.
I have searched long and in vain for errors in my expression map or in the tracks themselves.
If anyone could explain what is going on here or what mistakes I have made I would be really grateful.
I was worried that the problem was being obscured or caused by the fact that my previous attachments are cut-down versions of a much larger project that has been subject to a million previous edits of various kinds. Therefore I have created an example from scratch that is attached below:
Expression Map not working - Brand New Project.cpr (245.8 KB)
This displays the same behaviour. The existence of the cc64 messages does not only cause the staccato expression to not play as it should, it actually makes the notes in question sustain as if the sustain pedal were still pressed, even though cc64 has been set to zero before the notes sound. If you start playback after cc64 is set to zero but before the notes begin, they play correctly, with staccato.
Furthermore, if you delete the expression markings from the staccato notes, the unexpected ‘sustain’ disappears i.e. the notes now play as if the sustain pedal were not depressed.
I am assuming I have made an error in the way I have set up the expression map, but for the life of me I cannot see what it is.
Since no one has posted to tell me I have set up the expression map wrong, I am assuming this is a bug. I am going to add the ‘issue’ tag to the original post when I have posted this. In order to replicate the problem, either:
download “Expression map not working - Brand New Project.cpr” from my previous post, or
- Set up a new project
- Enter a few notes and some sustain messages similar to what follows. The final cc64 sustain should be set to zero before the final notes sound:
- The above file uses the HALion Sonic SE piano, but I have tried it with other pianos and the result is the same;
- Set up an expression map like this:
- Set the staccato expression on the notes in bar 2 like this:
- Play the file.
You should see the behaviour I have described above. The notes in b2 are not staccato, in fact quite the contrary, they are sustained as if the sustain pedal is still depressed, the exact opposite of what is wanted. If you delete the cc64 messages, the staccato sounds as intended.
I hope someone can replicate this if only to show I am not going crazy.
I am on Windows 10, Cubase Pro 12.0.52
I can’t find out how to add the tag, so I will just leave as is for now. Perhaps someone would be good enough to tell me whether what I have done is sufficient to get the issue reported.
Pease have a look at the Forum Guide
Okay no worries, must be something to do with my user level, I can no longer edit the original in any way. Many thanks for adding the flag.
I have found a workaround. If you insert another cc64=0 message just after the start of the first staccato note (but before it should turn off based on its reduced value as defined in the expression map), then everything sounds correctly. See attached file.
Expression Map workaround.cpr (246.8 KB)
It doesn’t matter how many cc64=0 messages you insert before the first staccato note sounds - that will not work, and the notes will still be incorrectly sustained.
This workaround is not ideal, especially if you have recorded the cc64 messages live, however it is somewhat easier than trying to fix the faulty staccato by actually shortening the notes, which takes much longer and also wrecks the score view.
I am not going to flag this as a solution, because it is still somewhat time consuming, and the expression map and cc64 are clearly not interacting with each other in the way they should, so it is definitely a fault.